From 4548c5060142f2e1b71f69f02dce6097fa39d5b5 Mon Sep 17 00:00:00 2001 From: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Date: Mon, 29 Jun 2026 15:39:22 +0300 Subject: [PATCH 1/5] feat(ethexe): add lightweight channel for events --- Cargo.lock | 10 + Cargo.toml | 1 + ethexe/common/src/events/mirror.rs | 10 +- ethexe/common/src/gear.rs | 6 + ethexe/common/src/mock.rs | 2 + ethexe/consensus/src/validator/batch/tests.rs | 4 + ethexe/consensus/src/validator/batch/utils.rs | 63 ++- ethexe/contracts/.vscode/settings.json | 2 +- ethexe/contracts/src/IMirror.sol | 8 + ethexe/contracts/src/Mirror.sol | 445 ++++++++++-------- ethexe/contracts/src/libraries/Gear.sol | 18 +- ethexe/contracts/test/Base.t.sol | 14 +- ethexe/contracts/test/POC.t.sol | 8 +- ethexe/db/src/iterator.rs | 16 +- ethexe/ethereum/abi/BatchMulticall.json | 2 +- ethexe/ethereum/abi/DemoCaller.json | 2 +- ethexe/ethereum/abi/Gear.json | 2 +- ethexe/ethereum/abi/Middleware.json | 2 +- ethexe/ethereum/abi/Mirror.json | 2 +- ethexe/ethereum/abi/POAMiddleware.json | 2 +- ethexe/ethereum/abi/Router.json | 2 +- ethexe/ethereum/abi/WrappedVara.json | 2 +- ethexe/ethereum/src/abi/events/mirror.rs | 8 + ethexe/ethereum/src/abi/gear.rs | 2 + ethexe/ethereum/src/mirror/events.rs | 28 +- ethexe/ethereum/src/mirror/mod.rs | 6 +- ethexe/node-loader/src/batch.rs | 1 + ethexe/runtime/common/src/journal.rs | 19 +- ethexe/runtime/common/src/proptest.rs | 36 +- ethexe/runtime/common/src/schedule.rs | 19 +- ethexe/runtime/common/src/transitions.rs | 20 +- ethexe/service/Cargo.toml | 1 + ethexe/service/src/tests/mod.rs | 152 ++++++ sdk/examples/sails-events/Cargo.toml | 21 + sdk/examples/sails-events/build.rs | 6 + sdk/examples/sails-events/src/lib.rs | 15 + sdk/examples/sails-events/src/wasm.rs | 32 ++ 37 files changed, 743 insertions(+), 246 deletions(-) create mode 100644 sdk/examples/sails-events/Cargo.toml create mode 100644 sdk/examples/sails-events/build.rs create mode 100644 sdk/examples/sails-events/src/lib.rs create mode 100644 sdk/examples/sails-events/src/wasm.rs diff --git a/Cargo.lock b/Cargo.lock index 538f9fc4ad6..f535203262b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4772,6 +4772,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "demo-sails-events" +version = "0.1.0" +dependencies = [ + "gear-wasm-builder", + "gear-workspace-hack", + "gstd", +] + [[package]] name = "demo-send-from-reservation" version = "0.1.0" @@ -6112,6 +6121,7 @@ dependencies = [ "demo-piggy-bank", "demo-ping", "demo-reply-callback", + "demo-sails-events", "demo-value-sender-ethexe", "derive_more 2.1.1", "ethexe-blob-loader", diff --git a/Cargo.toml b/Cargo.toml index 96861fc1a76..646c26d7bf9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -578,6 +578,7 @@ demo-reply-callback = { path = "sdk/examples/reply-callback" } demo-reservation-manager = { path = "sdk/examples/reservation-manager" } demo-reserve-gas = { path = "sdk/examples/reserve-gas", default-features = false } demo-rwlock = { path = "sdk/examples/rwlock" } +demo-sails-events = { path = "sdk/examples/sails-events" } demo-send-from-reservation = { path = "sdk/examples/send-from-reservation" } demo-signal-entry = { path = "sdk/examples/signal-entry", default-features = false } demo-staking-broker = { path = "sdk/examples/staking-broker" } diff --git a/ethexe/common/src/events/mirror.rs b/ethexe/common/src/events/mirror.rs index 45f332172eb..243dd6b26bd 100644 --- a/ethexe/common/src/events/mirror.rs +++ b/ethexe/common/src/events/mirror.rs @@ -88,6 +88,12 @@ pub struct ValueClaimingRequestedEvent { pub source: ActorId, } +#[derive(Clone, Debug, PartialEq, Eq, Decode, Encode, TypeInfo, Hash)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] +pub struct GearEvent { + pub payload: Vec, +} + #[derive(Clone, Debug, PartialEq, Eq, Decode, Encode, TypeInfo, Hash)] #[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] pub struct TransferLockedValueToInheritorFailedEvent { @@ -125,6 +131,7 @@ pub enum Event { TransferLockedValueToInheritorFailed(TransferLockedValueToInheritorFailedEvent), ReplyTransferFailed(ReplyTransferFailedEvent), ValueClaimFailed(ValueClaimFailedEvent), + Gear(GearEvent), } impl Event { @@ -147,7 +154,8 @@ impl Event { | Self::ReplyCallFailed(_) | Self::TransferLockedValueToInheritorFailed(_) | Self::ReplyTransferFailed(_) - | Self::ValueClaimFailed(_) => return None, + | Self::ValueClaimFailed(_) + | Self::Gear(_) => return None, }) } } diff --git a/ethexe/common/src/gear.rs b/ethexe/common/src/gear.rs index 3f987ebbcb1..11b8cdc995d 100644 --- a/ethexe/common/src/gear.rs +++ b/ethexe/common/src/gear.rs @@ -373,6 +373,8 @@ pub struct StateTransition { pub value_to_receive_negative_sign: bool, pub value_claims: Vec, pub messages: Vec, + pub events: Vec>, + pub eth_events: Vec>, } impl ToDigest for StateTransition { @@ -387,6 +389,8 @@ impl ToDigest for StateTransition { value_to_receive_negative_sign, value_claims, messages, + events, + eth_events, } = self; hasher.update(actor_id.to_address_lossy()); @@ -397,6 +401,8 @@ impl ToDigest for StateTransition { hasher.update([*value_to_receive_negative_sign as u8]); hasher.update(value_claims.to_digest()); hasher.update(messages.to_digest()); + hasher.update(events.to_digest()); + hasher.update(eth_events.to_digest()); } } diff --git a/ethexe/common/src/mock.rs b/ethexe/common/src/mock.rs index 183ed86010c..7eb358258dd 100644 --- a/ethexe/common/src/mock.rs +++ b/ethexe/common/src/mock.rs @@ -390,6 +390,8 @@ impl Arbitrary for StateTransition { reply_details: None, call: false, }], + events: vec![b"Event 1".to_vec(), b"Event 2".to_vec()], + eth_events: vec![b"Eth Event 1".to_vec(), b"Eth Event 2".to_vec()], }, ) .boxed() diff --git a/ethexe/consensus/src/validator/batch/tests.rs b/ethexe/consensus/src/validator/batch/tests.rs index 2a3823c78bc..b4e134f6229 100644 --- a/ethexe/consensus/src/validator/batch/tests.rs +++ b/ethexe/consensus/src/validator/batch/tests.rs @@ -111,6 +111,8 @@ fn nonempty_transition(seed: u8) -> StateTransition { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], } } @@ -496,6 +498,8 @@ async fn squash_orders_negative_value_transitions_first() { value_to_receive_negative_sign, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }; let mb1_neg = transition(actor_negative, H256::from([1; 32]), 70, true); diff --git a/ethexe/consensus/src/validator/batch/utils.rs b/ethexe/consensus/src/validator/batch/utils.rs index e23a5f9eec3..9c5b4fcd592 100644 --- a/ethexe/consensus/src/validator/batch/utils.rs +++ b/ethexe/consensus/src/validator/batch/utils.rs @@ -13,7 +13,10 @@ use ethexe_common::{ }, }; use gprimitives::{ActorId, H256}; -use std::collections::{HashMap, hash_map::Entry}; +use std::{ + collections::{HashMap, hash_map::Entry}, + mem, +}; /// MBs in `(last_committed_mb, mb_hash]`, chronological order. Strict: errors /// if the walk doesn't reach the anchor or any MB along the way is not computed. @@ -363,14 +366,18 @@ struct ActorAggregation { newest: StateTransition, messages: Vec, value_claims: Vec, + events: Vec>, + eth_events: Vec>, value_to_receive: SignedMagnitude, exit_inheritor: Option, } impl ActorAggregation { fn new(mut transition: StateTransition) -> Self { - let messages = std::mem::take(&mut transition.messages); - let value_claims = std::mem::take(&mut transition.value_claims); + let messages = mem::take(&mut transition.messages); + let value_claims = mem::take(&mut transition.value_claims); + let events = mem::take(&mut transition.events); + let eth_events = mem::take(&mut transition.eth_events); let exit_inheritor = transition.exited.then_some(transition.inheritor); Self { @@ -381,6 +388,8 @@ impl ActorAggregation { newest: transition, messages, value_claims, + events, + eth_events, exit_inheritor, } } @@ -390,6 +399,8 @@ impl ActorAggregation { debug_assert_eq!(self.newest.actor_id, actor_id); self.messages.append(&mut transition.messages); self.value_claims.append(&mut transition.value_claims); + self.events.append(&mut transition.events); + self.eth_events.append(&mut transition.eth_events); self.value_to_receive.add_assign( SignedMagnitude::new( transition.value_to_receive, @@ -418,6 +429,8 @@ impl ActorAggregation { value_to_receive_negative_sign, value_claims: self.value_claims, messages: self.messages, + events: self.events, + eth_events: self.eth_events, } } } @@ -705,6 +718,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }], head: block_hash, last_advanced_eth_block: H256::zero(), @@ -774,6 +789,12 @@ mod tests { call: false, }; + let e1 = "Event 1".as_bytes().to_vec(); + let e2 = "Event 2".as_bytes().to_vec(); + + let eth_e1 = "Eth Event 1".as_bytes().to_vec(); + let eth_e2 = "Eth Event 2".as_bytes().to_vec(); + let transitions = vec![ StateTransition { actor_id: actor, @@ -784,6 +805,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![m1.clone()], + events: vec![e1.clone()], + eth_events: vec![eth_e1.clone()], }, StateTransition { actor_id: actor, @@ -794,6 +817,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![m2.clone()], + events: vec![e2.clone()], + eth_events: vec![eth_e2.clone()], }, ]; @@ -806,6 +831,8 @@ mod tests { assert!(st.exited); assert_eq!(st.inheritor, inheritor_new); assert_eq!(st.messages, vec![m1, m2]); + assert_eq!(st.events, vec![e1, e2]); + assert_eq!(st.eth_events, vec![eth_e1, eth_e2]); assert_eq!(st.value_to_receive, 3); } @@ -824,6 +851,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -834,6 +863,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); } @@ -853,6 +884,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor_b, @@ -863,6 +896,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]; @@ -893,6 +928,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor_b, @@ -903,6 +940,8 @@ mod tests { value_to_receive_negative_sign: true, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor_a, @@ -913,6 +952,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); @@ -939,6 +980,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -949,6 +992,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]; @@ -976,6 +1021,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -986,6 +1033,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]; @@ -1012,6 +1061,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -1022,6 +1073,8 @@ mod tests { value_to_receive_negative_sign: true, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); @@ -1044,6 +1097,8 @@ mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, StateTransition { actor_id: actor, @@ -1054,6 +1109,8 @@ mod tests { value_to_receive_negative_sign: true, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }, ]); diff --git a/ethexe/contracts/.vscode/settings.json b/ethexe/contracts/.vscode/settings.json index 5486624f049..2a816f64fee 100644 --- a/ethexe/contracts/.vscode/settings.json +++ b/ethexe/contracts/.vscode/settings.json @@ -6,5 +6,5 @@ "editor.defaultFormatter": "JuanBlanco.solidity" }, "solidity.formatter": "forge", - "solidity.compileUsingRemoteVersion": "v0.8.33" + "solidity.compileUsingRemoteVersion": "v0.8.34" } diff --git a/ethexe/contracts/src/IMirror.sol b/ethexe/contracts/src/IMirror.sol index 52a481692a6..bdd7bf272bf 100644 --- a/ethexe/contracts/src/IMirror.sol +++ b/ethexe/contracts/src/IMirror.sol @@ -128,6 +128,14 @@ interface IMirror { */ event ValueClaimed(bytes32 claimedId, uint128 value); + /** + * @dev Emitted when the program emits a Gear event, which is a custom event defined by the program. + * @param payload The payload of the Gear event. + * NOTE: It's event for USERS: + * it informs about Gear event emitted by the program. + */ + event GearEvent(bytes payload); + /** * @dev Emitted when the program fails to transfer locked value to inheritor after exit. * @param inheritor The address of the inheritor. diff --git a/ethexe/contracts/src/Mirror.sol b/ethexe/contracts/src/Mirror.sol index f303407a4fc..2c12b1edc6b 100644 --- a/ethexe/contracts/src/Mirror.sol +++ b/ethexe/contracts/src/Mirror.sol @@ -416,6 +416,16 @@ contract Mirror is IMirror { */ bytes32 valueClaimsHash = _claimValues(_transition.valueClaims); + /** + * @dev Emit Gear events (with `destination = address(0)`). + */ + bytes32 eventsHashesHash = _emitGearEvents(_transition.events); + + /** + * @dev Emit Ethereum events (with `destination = ETH_EVENT_ADDR`). + */ + bytes32 ethEventsHashesHash = _emitEthEvents(_transition.ethEvents); + /** * @dev Set inheritor if exited. */ @@ -443,7 +453,9 @@ contract Mirror is IMirror { _transition.valueToReceive, _transition.valueToReceiveNegativeSign, valueClaimsHash, - messagesHashesHash + messagesHashesHash, + eventsHashesHash, + ethEventsHashesHash ); } @@ -550,211 +562,28 @@ contract Mirror is IMirror { /** * @dev Internal function to send message that goes to mailbox. * Value never sent since goes to mailbox. - * Emits `Message` event if it is not event from Sails framework. * If `_message.call = true`, then call will be made to `_message.destination` * with _message.payload and gas limit of 500_000 to prevent DoS attacks. * If call fails, then `MessageCallFailed` event will be emitted. * @param _message The message to be sent. */ function _sendMailboxedMessage(Gear.Message calldata _message) private { - /** - * @dev First, we'll try to parse event from the Sails framework - * and then emit it on behalf of the `Mirror` smart contract. - */ - if (!_tryParseAndEmitSailsEvent(_message)) { - // TODO #5243: We currently support this on the `Mirror` smart contract, - // but we don't support it on the Rust client and we don't have corresponding syscalls for it. - // This is unreachable code branch currently. - if (_message.call) { - (bool success,) = _message.destination.call{gas: 500_000}(_message.payload); - - if (!success) { - /** - * @dev In case of failed call, we emit appropriate event to inform external users. - */ - emit MessageCallFailed(_message.id, _message.destination, _message.value); - return; - } - } - - emit Message(_message.id, _message.destination, _message.payload, _message.value); - } - } - - /** - * @dev Tries to parse an event from the Sails framework and emit it in Solidity notation. - * - * User writes WASM smart contract on Sails framework called "Counter": - * - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs - * - * Example of defining Solidity events in WASM contract based on Sails framework: - * ```rust - * #[event] - * #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)] - * #[codec(crate = scale_codec)] - * #[scale_info(crate = scale_info)] - * pub enum CounterEvents { - * Added { - * #[indexed] - * source: ActorId, - * value: u32, - * }, - * } - * ``` - * - * User also generates "Solidity ABI interface" that allows services like Etherscan to decode events from `Mirror` - * (since we use the ABI interface as "proxy implementation"): - * ```solidity - * interface ICounter { - * event Added(address indexed source, uint32 value); - * - * // ... other events - * } - * ``` - * - * Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event, - * which will then be emitted by `Mirror` smart contract as showed on services like Etherscan: - * ```rust - * #[service(events = CounterEvents)] - * impl CounterService<'_> { - * #[export] - * pub fn add(&mut self, value: u32) -> u32 { - * let mut data_mut = self.data.borrow_mut(); - * data_mut.counter = data_mut.counter.checked_add(value).expect("failed to add"); - * let source = Syscall::message_source(); - * self.emit_eth_event(CounterEvents::Added { source, value }) - * .expect("failed to emit eth event"); - * data_mut.counter - * } - * } - * ``` - * - * All the `emit_eth_event` method in the Sails framework does is call the syscall - * `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload` - * is encoded in Solidity notation as described below. - * - * Format in which the Sails framework sends events: - * - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`). - * specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called. - * - `bytes32 topic1` (required) - * should never match our event selectors! - * - `bytes32 topic2` (optional) - * - `bytes32 topic3` (optional) - * - `bytes32 topic4` (optional) - * - `bytes payload` (optional) - * contains encoded data of event in form of `abi.encode(...)`. - * @param _message The message to be parsed and emitted as Solidity event. - * @return isSailsEvent `true` in case of success and `false` in case of error (no matching event found). - */ - function _tryParseAndEmitSailsEvent(Gear.Message calldata _message) private returns (bool isSailsEvent) { - bytes calldata payload = _message.payload; - - if (!(_message.destination == ETH_EVENT_ADDR && _message.value == 0 && payload.length > 0)) { - return false; - } - - uint256 topicsLength; - assembly ("memory-safe") { - /** - * @dev `248` right bit shift is required to remove extra bits since `calldataload` returns `uint256` - */ - topicsLength := shr(248, calldataload(payload.offset)) - } - - if (!(topicsLength >= 1 && topicsLength <= 4)) { - return false; - } - - uint256 topicsLengthInBytes; - unchecked { - topicsLengthInBytes = 1 + topicsLength * 32; - } - - if (!(payload.length >= topicsLengthInBytes)) { - return false; - } - - /** - * @dev We use offset 1 to skip `uint8 topicsLength` - */ - bytes32 topic1; - assembly ("memory-safe") { - topic1 := calldataload(add(payload.offset, 1)) - } - - /** - * @dev SECURITY: - * Very important check because custom events can match our hashes! - * If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic! - * - * Command to re-generate selectors check: - * ```bash - * grep -Po " event\s+\K[^(]+" ethexe/contracts/src/IMirror.sol | xargs -I{} echo " topic1 != {}.selector &&" | sed '$ s/ &&$//' - * ``` - */ - // forgefmt: disable-start - if (!( - topic1 != StateChanged.selector && - topic1 != MessageQueueingRequested.selector && - topic1 != ReplyQueueingRequested.selector && - topic1 != ValueClaimingRequested.selector && - topic1 != OwnedBalanceTopUpRequested.selector && - topic1 != ExecutableBalanceTopUpRequested.selector && - topic1 != Message.selector && - topic1 != MessageCallFailed.selector && - topic1 != Reply.selector && - topic1 != ReplyCallFailed.selector && - topic1 != ValueClaimed.selector && - topic1 != TransferLockedValueToInheritorFailed.selector && - topic1 != ReplyTransferFailed.selector && - topic1 != ValueClaimFailed.selector - )) { - return false; - } - // forgefmt: disable-end - - uint256 size; - unchecked { - size = payload.length - topicsLengthInBytes; - } - - uint256 memPtr = Memory.allocate(size); - assembly ("memory-safe") { - calldatacopy(memPtr, add(payload.offset, topicsLengthInBytes), size) - } - - /** - * @dev We use offset 1 to skip `uint8 topicsLength`. - * Regular offsets: `32`, `64`, `96`. - */ - bytes32 topic2; - bytes32 topic3; - bytes32 topic4; - assembly ("memory-safe") { - topic2 := calldataload(add(payload.offset, 33)) - topic3 := calldataload(add(payload.offset, 65)) - topic4 := calldataload(add(payload.offset, 97)) - } + // TODO #5243: We currently support this on the `Mirror` smart contract, + // but we don't support it on the Rust client and we don't have corresponding syscalls for it. + // This is unreachable code branch currently. + if (_message.call) { + (bool success,) = _message.destination.call{gas: 500_000}(_message.payload); - if (topicsLength == 1) { - assembly ("memory-safe") { - log1(memPtr, size, topic1) - } - } else if (topicsLength == 2) { - assembly ("memory-safe") { - log2(memPtr, size, topic1, topic2) - } - } else if (topicsLength == 3) { - assembly ("memory-safe") { - log3(memPtr, size, topic1, topic2, topic3) - } - } else if (topicsLength == 4) { - assembly ("memory-safe") { - log4(memPtr, size, topic1, topic2, topic3, topic4) + if (!success) { + /** + * @dev In case of failed call, we emit appropriate event to inform external users. + */ + emit MessageCallFailed(_message.id, _message.destination, _message.value); + return; } } - return true; + emit Message(_message.id, _message.destination, _message.payload, _message.value); } /** @@ -955,6 +784,230 @@ contract Mirror is IMirror { return Hashes.efficientKeccak256AsBytes32(claimsHashesMemPtr, 0, claimsHashesSize); } + /** + * @dev Internal function to emit Gear events from messages. + * It computes the hash of all events by keccak256 hashing each event + * and combining them together. + * @param _events The array of events to be emitted. + * @return eventsHash The hash of the emitted events. + */ + function _emitGearEvents(bytes[] calldata _events) private returns (bytes32 eventsHash) { + uint256 eventsLen = _events.length; + uint256 eventsHashesSize = eventsLen * 32; + uint256 eventsHashesMemPtr = Memory.allocate(eventsHashesSize); + uint256 offset = 0; + + for (uint256 i = 0; i < eventsLen; i++) { + bytes32 eventHash = keccak256(_events[i]); + Memory.writeWordAsBytes32(eventsHashesMemPtr, offset, eventHash); + unchecked { + offset += 32; + } + + emit GearEvent(_events[i]); + } + + return Hashes.efficientKeccak256AsBytes32(eventsHashesMemPtr, 0, eventsHashesSize); + } + + /** + * @dev Internal function to emit Ethereum events. + * It computes the hash of all events by keccak256 hashing each event + * and combining them together. + * @param _events The array of Ethereum events to be emitted. + * @return ethEventsHash The hash of the emitted Ethereum events. + */ + function _emitEthEvents(bytes[] calldata _events) private returns (bytes32 ethEventsHash) { + uint256 eventsLen = _events.length; + uint256 eventsHashesSize = eventsLen * 32; + uint256 eventsHashesMemPtr = Memory.allocate(eventsHashesSize); + uint256 offset = 0; + + for (uint256 i = 0; i < eventsLen; i++) { + bytes32 eventHash = keccak256(_events[i]); + Memory.writeWordAsBytes32(eventsHashesMemPtr, offset, eventHash); + unchecked { + offset += 32; + } + + _tryParseAndEmitSailsEvent(_events[i]); + } + + return Hashes.efficientKeccak256AsBytes32(eventsHashesMemPtr, 0, eventsHashesSize); + } + + /** + * @dev Tries to parse an event from the Sails framework and emit it in Solidity notation. + * + * User writes WASM smart contract on Sails framework called "Counter": + * - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs + * + * Example of defining Solidity events in WASM contract based on Sails framework: + * ```rust + * #[event] + * #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)] + * #[codec(crate = scale_codec)] + * #[scale_info(crate = scale_info)] + * pub enum CounterEvents { + * Added { + * #[indexed] + * source: ActorId, + * value: u32, + * }, + * } + * ``` + * + * User also generates "Solidity ABI interface" that allows services like Etherscan to decode events from `Mirror` + * (since we use the ABI interface as "proxy implementation"): + * ```solidity + * interface ICounter { + * event Added(address indexed source, uint32 value); + * + * // ... other events + * } + * ``` + * + * Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event, + * which will then be emitted by `Mirror` smart contract as showed on services like Etherscan: + * ```rust + * #[service(events = CounterEvents)] + * impl CounterService<'_> { + * #[export] + * pub fn add(&mut self, value: u32) -> u32 { + * let mut data_mut = self.data.borrow_mut(); + * data_mut.counter = data_mut.counter.checked_add(value).expect("failed to add"); + * let source = Syscall::message_source(); + * self.emit_eth_event(CounterEvents::Added { source, value }) + * .expect("failed to emit eth event"); + * data_mut.counter + * } + * } + * ``` + * + * All the `emit_eth_event` method in the Sails framework does is call the syscall + * `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload` + * is encoded in Solidity notation as described below. + * + * Format in which the Sails framework sends events: + * - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`). + * specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called. + * - `bytes32 topic1` (required) + * should never match our event selectors! + * - `bytes32 topic2` (optional) + * - `bytes32 topic3` (optional) + * - `bytes32 topic4` (optional) + * - `bytes payload` (optional) + * contains encoded data of event in form of `abi.encode(...)`. + * @param _payload The payload to be parsed and emitted as Solidity event. + */ + function _tryParseAndEmitSailsEvent(bytes calldata _payload) private { + if (!(_payload.length > 0)) { + return; + } + + uint256 topicsLength; + assembly ("memory-safe") { + /** + * @dev `248` right bit shift is required to remove extra bits since `calldataload` returns `uint256` + */ + topicsLength := shr(248, calldataload(_payload.offset)) + } + + if (!(topicsLength >= 1 && topicsLength <= 4)) { + return; + } + + uint256 topicsLengthInBytes; + unchecked { + topicsLengthInBytes = 1 + topicsLength * 32; + } + + if (!(_payload.length >= topicsLengthInBytes)) { + return; + } + + /** + * @dev We use offset 1 to skip `uint8 topicsLength` + */ + bytes32 topic1; + assembly ("memory-safe") { + topic1 := calldataload(add(_payload.offset, 1)) + } + + /** + * @dev SECURITY: + * Very important check because custom events can match our hashes! + * If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic! + * + * Command to re-generate selectors check: + * ```bash + * grep -Po " event\s+\K[^(]+" ethexe/contracts/src/IMirror.sol | xargs -I{} echo " topic1 != {}.selector &&" | sed '$ s/ &&$//' + * ``` + */ + // forgefmt: disable-start + if (!( + topic1 != StateChanged.selector && + topic1 != MessageQueueingRequested.selector && + topic1 != ReplyQueueingRequested.selector && + topic1 != ValueClaimingRequested.selector && + topic1 != OwnedBalanceTopUpRequested.selector && + topic1 != ExecutableBalanceTopUpRequested.selector && + topic1 != Message.selector && + topic1 != MessageCallFailed.selector && + topic1 != Reply.selector && + topic1 != ReplyCallFailed.selector && + topic1 != ValueClaimed.selector && + topic1 != GearEvent.selector && + topic1 != TransferLockedValueToInheritorFailed.selector && + topic1 != ReplyTransferFailed.selector && + topic1 != ValueClaimFailed.selector + )) { + return; + } + // forgefmt: disable-end + + uint256 size; + unchecked { + size = _payload.length - topicsLengthInBytes; + } + + uint256 memPtr = Memory.allocate(size); + assembly ("memory-safe") { + calldatacopy(memPtr, add(_payload.offset, topicsLengthInBytes), size) + } + + /** + * @dev We use offset 1 to skip `uint8 topicsLength`. + * Regular offsets: `32`, `64`, `96`. + */ + bytes32 topic2; + bytes32 topic3; + bytes32 topic4; + assembly ("memory-safe") { + topic2 := calldataload(add(_payload.offset, 33)) + topic3 := calldataload(add(_payload.offset, 65)) + topic4 := calldataload(add(_payload.offset, 97)) + } + + if (topicsLength == 1) { + assembly ("memory-safe") { + log1(memPtr, size, topic1) + } + } else if (topicsLength == 2) { + assembly ("memory-safe") { + log2(memPtr, size, topic1, topic2) + } + } else if (topicsLength == 3) { + assembly ("memory-safe") { + log3(memPtr, size, topic1, topic2, topic3) + } + } else if (topicsLength == 4) { + assembly ("memory-safe") { + log4(memPtr, size, topic1, topic2, topic3, topic4) + } + } + } + // TODO (breathx): allow zero inheritor in `Router`. /** * @dev Sets the inheritor address, sets exited flag to `true` and diff --git a/ethexe/contracts/src/libraries/Gear.sol b/ethexe/contracts/src/libraries/Gear.sol index d290b621346..8fa47e18f6c 100644 --- a/ethexe/contracts/src/libraries/Gear.sol +++ b/ethexe/contracts/src/libraries/Gear.sol @@ -471,6 +471,14 @@ library Gear { * @dev Array of messages. */ Message[] messages; + /** + * @dev Array of events. + */ + bytes[] events; + /** + * @dev Array of Ethereum events. + */ + bytes[] ethEvents; } /** @@ -669,6 +677,8 @@ library Gear { * @param valueToReceiveNegativeSign The sign of the value to receive. * @param valueClaimsHash The hash of the value claims. * @param messagesHashesHash The hash of the messages hashes. + * @param eventsHashesHash The hash of the events hashes. + * @param ethEventsHashesHash The hash of the Ethereum events hashes. */ function stateTransitionHash( address actor, @@ -678,7 +688,9 @@ library Gear { uint128 valueToReceive, bool valueToReceiveNegativeSign, bytes32 valueClaimsHash, - bytes32 messagesHashesHash + bytes32 messagesHashesHash, + bytes32 eventsHashesHash, + bytes32 ethEventsHashesHash ) internal pure returns (bytes32) { return keccak256( abi.encodePacked( @@ -689,7 +701,9 @@ library Gear { valueToReceive, valueToReceiveNegativeSign, valueClaimsHash, - messagesHashesHash + messagesHashesHash, + eventsHashesHash, + ethEventsHashesHash ) ); } diff --git a/ethexe/contracts/test/Base.t.sol b/ethexe/contracts/test/Base.t.sol index 32b5fb50f58..b250494e374 100644 --- a/ethexe/contracts/test/Base.t.sol +++ b/ethexe/contracts/test/Base.t.sol @@ -321,6 +321,16 @@ contract Base is POCBaseTest { _messagesHashesBytes = bytes.concat(_messagesHashesBytes, Gear.messageHash(_transition.messages[j])); } + bytes memory _eventsHashesBytes; + for (uint256 j = 0; j < _transition.events.length; j++) { + _eventsHashesBytes = bytes.concat(_eventsHashesBytes, keccak256(_transition.events[j])); + } + + bytes memory _ethEventsHashesBytes; + for (uint256 j = 0; j < _transition.ethEvents.length; j++) { + _ethEventsHashesBytes = bytes.concat(_ethEventsHashesBytes, keccak256(_transition.ethEvents[j])); + } + _transitionsHashes[i] = Gear.stateTransitionHash( _transition.actorId, _transition.newStateHash, @@ -329,7 +339,9 @@ contract Base is POCBaseTest { _transition.valueToReceive, _transition.valueToReceiveNegativeSign, keccak256(_valueClaimsBytes), - keccak256(_messagesHashesBytes) + keccak256(_messagesHashesBytes), + keccak256(_eventsHashesBytes), + keccak256(_ethEventsHashesBytes) ); } diff --git a/ethexe/contracts/test/POC.t.sol b/ethexe/contracts/test/POC.t.sol index 4ce7a51437c..3034b85d4ff 100644 --- a/ethexe/contracts/test/POC.t.sol +++ b/ethexe/contracts/test/POC.t.sol @@ -241,7 +241,9 @@ contract POCTest is Base { uint128(0), // value to receive false, // value to receive negative sign new Gear.ValueClaim[](0), // value claims - _outgoingMessages // messages + _outgoingMessages, // messages + new bytes[](0), // events + new bytes[](0) // ethEvents ); vm.expectEmit(true, false, false, false); @@ -278,7 +280,9 @@ contract POCTest is Base { 0, // value to receive false, // value to receive negative sign new Gear.ValueClaim[](0), // value claims - _outgoingMessages // messages + _outgoingMessages, // messages + new bytes[](0), // events + new bytes[](0) // ethEvents ); vm.expectEmit(true, false, false, false); diff --git a/ethexe/db/src/iterator.rs b/ethexe/db/src/iterator.rs index 3ac40f492f9..89cfc460bce 100644 --- a/ethexe/db/src/iterator.rs +++ b/ethexe/db/src/iterator.rs @@ -733,6 +733,8 @@ where value_to_receive_negative_sign: _, value_claims: _, messages: _, + events: _, + eth_events: _, } = state_transition; let new_state_hash = *new_state_hash; @@ -961,8 +963,10 @@ pub(crate) mod tests { inheritor: ActorId::zero(), value_to_receive: 0, value_to_receive_negative_sign: false, - value_claims: Vec::new(), - messages: Vec::new(), + value_claims: vec![], + messages: vec![], + events: vec![], + eth_events: vec![], }; let nodes: Vec<_> = @@ -992,8 +996,10 @@ pub(crate) mod tests { inheritor: ActorId::zero(), value_to_receive: 0, value_to_receive_negative_sign: false, - value_claims: Vec::new(), - messages: Vec::new(), + value_claims: vec![], + messages: vec![], + events: vec![], + eth_events: vec![], }; let visited_states: Vec<_> = @@ -1146,6 +1152,8 @@ pub(crate) mod tests { value_to_receive_negative_sign: false, value_claims: vec![], messages: vec![], + events: vec![], + eth_events: vec![], }], }, ) diff --git a/ethexe/ethereum/abi/BatchMulticall.json b/ethexe/ethereum/abi/BatchMulticall.json index fbd754140b8..8103bc95ffb 100644 --- a/ethexe/ethereum/abi/BatchMulticall.json +++ b/ethexe/ethereum/abi/BatchMulticall.json @@ -1 +1 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"ApproveFailed","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RefundFailed","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]}],"bytecode":{"object":"0x608080604052346015576108b7908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;;;;;;;;;;;;;;:::i;:::-;3392:27;;;;:::i;:::-;3430:16;1190:5485;3462:13;1190:5485;3477:16;;;;;;3581:9;3561:70;3581:9;;;3569:21;;;3561:70;:::i;:::-;1190:5485;3662:16;;;;;;3581:9;;;3907:20;;3903:163;;3642:251;4081:34;1190:5485;;;;;;;;;;;;;;;:::i;:::-;4081:34;;;1190:5485;3903:163;1190:5485;3581:9;;3984:20;3581:9;;;3984:20;:::i;:::-;3961:10;:48;;;;:::i;:::-;;1190:5485;;;3903:163;;;1190:5485;;;;;;;;;3680:3;3734:8;;;;;:::i;:::-;1190:5485;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;3836:17;1190:5485;3836:17;3855:19;-1:-1:-1;;;;;3836:17:153;1190:5485;3789:93;3836:17;;;:::i;:::-;1190:5485;3855:19;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;;3789:93;;1190:5485;3789:93;;;:::i;:::-;;;;;;;;;1190:5485;3789:93;;;3680:3;1190:5485;3757:125;;;;;;:::i;:::-;1190:5485;;3647:13;;3789:93;;1190:5485;3789:93;;;;;;;;;1190:5485;3789:93;;;:::i;:::-;;;1190:5485;;;;;;;3789:93;;1190:5485;;;;3789:93;;;-1:-1:-1;3789:93:153;;;1190:5485;;;;;;;;;3495:3;3526:8;3514:26;1190:5485;3526:8;-1:-1:-1;;;;;3526:14:153;1190:5485;3526:8;;;;;:::i;:::-;:14;;:::i;:::-;1190:5485;3514:26;;:::i;:::-;3495:3;1190:5485;3462:13;;1190:5485;;;-1:-1:-1;;1190:5485:153;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1190:5485:153;;;;4847:27;;;:::i;:::-;1190:5485;;;;;;4919:20;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;;;1190:5485;4919:20;;;1190:5485;-1:-1:-1;1190:5485:153;;;;-1:-1:-1;;1190:5485:153;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;4951:16;4983:13;1190:5485;5016:3;4998:16;;;;;;1190:5485;;;;;;;;;;;;;;;;;5104:39;5116:27;;;;-1:-1:-1;;;;;5116:27:153;;;:::i;5104:39::-;5178:9;5158:70;5178:9;;;5166:21;;;5158:70;:::i;:::-;1190:5485;;5263:85;1190:5485;;;;;;;;;5263:85;;1190:5485;;;5263:85;;1190:5485;5310:22;;;1190:5485;;;;;5342:4;1190:5485;;;;5263:85;;;;;;;1190:5485;5263:85;;;5016:3;5362:25;;;;;:::i;:::-;-1:-1:-1;;;;;1190:5485:153;;;;;;;5455:28;;;-1:-1:-1;;;;;5455:28:153;;;:::i;:::-;1190:5485;5451:390;;5016:3;5917:27;;5891:92;5917:27;5946:29;-1:-1:-1;;;;;5917:27:153;1190:5485;5917:27;;:::i;:::-;1190:5485;5946:29;1190:5485;5946:29;;;;:::i;5891:92::-;;;;;;;;;1190:5485;5891:92;;;5016:3;1190:5485;5997:25;;;;;;:::i;:::-;1190:5485;;4983:13;;5891:92;;1190:5485;5891:92;;;;;;;;;1190:5485;5891:92;;;:::i;:::-;;;1190:5485;;;;;;;5891:92;;;;;-1:-1:-1;5891:92:153;;5451:390;5582:28;1190:5485;-1:-1:-1;;;;;5263:85:153;5582:28;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;5536:75;;5555:10;1190:5485;5536:75;;1190:5485;5342:4;1190:5485;;;;;;;;;5536:75;;;;;;;1190:5485;5536:75;;;5451:390;1190:5485;;;;5702:28;1190:5485;-1:-1:-1;;;;;1190:5485:153;5702:28;;;:::i;:::-;1190:5485;;;;;;;;;;;5677:54;;;1190:5485;5677:54;;1190:5485;;;;;;5677:54;;;;;;;1190:5485;5677:54;;;5451:390;1190:5485;;;;5797:28;;;:::i;:::-;5767:59;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;5767:59;;1190:5485;;5767:59;;1190:5485;;5767:59;1190:5485;5767:59;;;;;;;;;;-1:-1:-1;;;;;5917:27:153;5946:29;5767:59;5891:92;5767:59;1190:5485;5767:59;;;5451:390;;;;;;;;;;;5767:59;1190:5485;5767:59;;;:::i;:::-;;;;1190:5485;;;;;;;;;5677:54;;;;1190:5485;5677:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1190:5485;;;;;;;;;5536:75;;;;1190:5485;5536:75;;;;;;;;;:::i;:::-;;;;5263:85;;;;;1190:5485;5263:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;4998:16;;;;;5178:9;6047:20;;6043:163;;4978:1055;1190:5485;;;;;;;;;;;;;;;5116:27;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;6043:163;1190:5485;5178:9;;6124:20;5178:9;;;6124:20;:::i;:::-;6101:10;:48;;;;:::i;:::-;;1190:5485;;;6043:163;;;4919:20;;;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;:::i;:::-;;;;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1190:5485:153;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;:::i;:::-;;;;-1:-1:-1;1190:5485:153;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts. This is useful for reducing number of transactions when interacting with multiple Mirror contracts. Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network. Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster. This contract allows both batching of messages and batching of program creations. Furthermore, when creating programs, it offers full flow: - approval of WVARA ERC20 token for created program (Mirror) - top-up of executable balance for created program in WVARA ERC20 token (Mirror) - sending initial message to created program (Mirror) All of these actions are done in one transaction, which is much faster than doing them separately.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"Approving WVARA token for created program (Mirror) failed.\"}],\"InsufficientValue(uint256,uint256)\":[{\"details\":\"There is not enough value sent with transaction to cover calls.\"}],\"RefundFailed()\":[{\"details\":\"Refunding excess value to sender failed.\"}],\"TransferFromFailed()\":[{\"details\":\"Transferring WVARA token from sender to this contract failed.\"}]},\"events\":{\"SendMessageBatchResult(bytes32[])\":{\"details\":\"Emitted when batch of messages is sent. It contains array of message ids that were sent.\"}},\"kind\":\"dev\",\"methods\":{\"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])\":{\"details\":\"Creates batch of programs through Router contract and sends initial messages to them.\",\"params\":{\"calls\":\"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\",\"router\":\"The Router contract address.\"},\"returns\":{\"_0\":\"programIds Array of created program IDs.\",\"_1\":\"messageIds Array of message IDs for the initial messages sent to each created program.\"}},\"sendMessageBatch((address,bytes,uint128)[])\":{\"details\":\"Sends batch of messages through Mirror contracts.\",\"params\":{\"calls\":\"Array of `MessageCall` structs representing calls to send messages through Mirror contracts.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf\",\"dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApproveFailed"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"RefundFailed"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":{"details":"Creates batch of programs through Router contract and sends initial messages to them.","params":{"calls":"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.","router":"The Router contract address."},"returns":{"_0":"programIds Array of created program IDs.","_1":"messageIds Array of message IDs for the initial messages sent to each created program."}},"sendMessageBatch((address,bytes,uint128)[])":{"details":"Sends batch of messages through Mirror contracts.","params":{"calls":"Array of `MessageCall` structs representing calls to send messages through Mirror contracts."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74","urls":["bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf","dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73729,"exportedSymbols":{"BatchMulticall":[73728],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006]},"nodeType":"SourceUnit","src":"74:6602:153","nodes":[{"id":73346,"nodeType":"PragmaDirective","src":"74:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":73348,"nodeType":"ImportDirective","src":"100:40:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":73347,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73350,"nodeType":"ImportDirective","src":"141:40:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"149:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73352,"nodeType":"ImportDirective","src":"182:50:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"190:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73728,"nodeType":"ContractDefinition","src":"1190:5485:153","nodes":[{"id":73360,"nodeType":"ErrorDefinition","src":"1312:58:153","nodes":[],"documentation":{"id":73354,"nodeType":"StructuredDocumentation","src":"1220:87:153","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1318:17:153","parameters":{"id":73359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73356,"mutability":"mutable","name":"expected","nameLocation":"1344:8:153","nodeType":"VariableDeclaration","scope":73360,"src":"1336:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73358,"mutability":"mutable","name":"actual","nameLocation":"1362:6:153","nodeType":"VariableDeclaration","scope":73360,"src":"1354:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1335:34:153"}},{"id":73363,"nodeType":"ErrorDefinition","src":"1445:21:153","nodes":[],"documentation":{"id":73361,"nodeType":"StructuredDocumentation","src":"1376:64:153","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1451:12:153","parameters":{"id":73362,"nodeType":"ParameterList","parameters":[],"src":"1463:2:153"}},{"id":73366,"nodeType":"ErrorDefinition","src":"1562:27:153","nodes":[],"documentation":{"id":73364,"nodeType":"StructuredDocumentation","src":"1472:85:153","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1568:18:153","parameters":{"id":73365,"nodeType":"ParameterList","parameters":[],"src":"1586:2:153"}},{"id":73369,"nodeType":"ErrorDefinition","src":"1682:22:153","nodes":[],"documentation":{"id":73367,"nodeType":"StructuredDocumentation","src":"1595:82:153","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1688:13:153","parameters":{"id":73368,"nodeType":"ParameterList","parameters":[],"src":"1701:2:153"}},{"id":73375,"nodeType":"EventDefinition","src":"1827:51:153","nodes":[],"anonymous":false,"documentation":{"id":73370,"nodeType":"StructuredDocumentation","src":"1710:112:153","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1833:22:153","parameters":{"id":73374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73373,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1866:10:153","nodeType":"VariableDeclaration","scope":73375,"src":"1856:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1856:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73372,"nodeType":"ArrayTypeName","src":"1856:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1855:22:153"}},{"id":73383,"nodeType":"StructDefinition","src":"2150:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":73376,"nodeType":"StructuredDocumentation","src":"1884:261:153","text":" @dev Represents call to send message through Mirror contract.\n It will be sent through `IMirror(mirror).sendMessage{value: value}(payload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73378,"mutability":"mutable","name":"mirror","nameLocation":"2187:6:153","nodeType":"VariableDeclaration","scope":73383,"src":"2179:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73377,"name":"address","nodeType":"ElementaryTypeName","src":"2179:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73380,"mutability":"mutable","name":"payload","nameLocation":"2209:7:153","nodeType":"VariableDeclaration","scope":73383,"src":"2203:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73379,"name":"bytes","nodeType":"ElementaryTypeName","src":"2203:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73382,"mutability":"mutable","name":"value","nameLocation":"2234:5:153","nodeType":"VariableDeclaration","scope":73383,"src":"2226:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73381,"name":"uint128","nodeType":"ElementaryTypeName","src":"2226:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2157:11:153","scope":73728,"visibility":"public"},{"id":73395,"nodeType":"StructDefinition","src":"2922:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":73384,"nodeType":"StructuredDocumentation","src":"2252:665:153","text":" @dev Represents call to create Mirror through Router contract.\n It will be sent through `IRouter(router).createProgram(codeId, salt, address(this))`,\n where `overrideInitializer` is always `address(this)` since we want to send initial message from this contract.\n Then, if `topUpValue` is greater than 0, it will approve WVARA token and top up executable balance for created Mirror.\n Finally, it will send initial message to created Mirror through `IMirror(programId).sendMessage{value: initValue}(initPayload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73386,"mutability":"mutable","name":"codeId","nameLocation":"2965:6:153","nodeType":"VariableDeclaration","scope":73395,"src":"2957:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2957:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73388,"mutability":"mutable","name":"salt","nameLocation":"2989:4:153","nodeType":"VariableDeclaration","scope":73395,"src":"2981:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2981:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73390,"mutability":"mutable","name":"initPayload","nameLocation":"3009:11:153","nodeType":"VariableDeclaration","scope":73395,"src":"3003:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73389,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73392,"mutability":"mutable","name":"initValue","nameLocation":"3038:9:153","nodeType":"VariableDeclaration","scope":73395,"src":"3030:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73391,"name":"uint128","nodeType":"ElementaryTypeName","src":"3030:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":73394,"mutability":"mutable","name":"topUpValue","nameLocation":"3065:10:153","nodeType":"VariableDeclaration","scope":73395,"src":"3057:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73393,"name":"uint128","nodeType":"ElementaryTypeName","src":"3057:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2929:17:153","scope":73728,"visibility":"public"},{"id":73517,"nodeType":"FunctionDefinition","src":"3279:843:153","nodes":[],"body":{"id":73516,"nodeType":"Block","src":"3352:770:153","nodes":[],"statements":[{"assignments":[73407],"declarations":[{"constant":false,"id":73407,"mutability":"mutable","name":"messageIds","nameLocation":"3379:10:153","nodeType":"VariableDeclaration","scope":73516,"src":"3362:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3362:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73406,"nodeType":"ArrayTypeName","src":"3362:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73414,"initialValue":{"arguments":[{"expression":{"id":73411,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3406:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:6:153","memberName":"length","nodeType":"MemberAccess","src":"3406:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3392:13:153","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":73408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3396:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73409,"nodeType":"ArrayTypeName","src":"3396:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3362:57:153"},{"assignments":[73416],"declarations":[{"constant":false,"id":73416,"mutability":"mutable","name":"consumed","nameLocation":"3438:8:153","nodeType":"VariableDeclaration","scope":73516,"src":"3430:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3430:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73417,"nodeType":"VariableDeclarationStatement","src":"3430:16:153"},{"body":{"id":73436,"nodeType":"Block","src":"3500:51:153","statements":[{"expression":{"id":73434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73429,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3514:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":73430,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3526:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73432,"indexExpression":{"id":73431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3532:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3526:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3535:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3526:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3514:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73435,"nodeType":"ExpressionStatement","src":"3514:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3477:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73423,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3481:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3487:6:153","memberName":"length","nodeType":"MemberAccess","src":"3481:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73437,"initializationExpression":{"assignments":[73419],"declarations":[{"constant":false,"id":73419,"mutability":"mutable","name":"i","nameLocation":"3470:1:153","nodeType":"VariableDeclaration","scope":73437,"src":"3462:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73421,"initialValue":{"hexValue":"30","id":73420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3474:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3462:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3495:3:153","subExpression":{"id":73426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3497:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73428,"nodeType":"ExpressionStatement","src":"3495:3:153"},"nodeType":"ForStatement","src":"3457:94:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73439,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3569:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73440,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3581:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3585:5:153","memberName":"value","nodeType":"MemberAccess","src":"3581:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3569:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73444,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3610:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3620:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:5:153","memberName":"value","nodeType":"MemberAccess","src":"3620:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73443,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"3592:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73438,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3561:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73449,"nodeType":"ExpressionStatement","src":"3561:70:153"},{"body":{"id":73485,"nodeType":"Block","src":"3685:208:153","statements":[{"assignments":[73463],"declarations":[{"constant":false,"id":73463,"mutability":"mutable","name":"messageCall","nameLocation":"3720:11:153","nodeType":"VariableDeclaration","scope":73485,"src":"3699:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":73462,"nodeType":"UserDefinedTypeName","pathNode":{"id":73461,"name":"MessageCall","nameLocations":["3699:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3699:11:153"},"referencedDeclaration":73383,"src":"3699:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":73467,"initialValue":{"baseExpression":{"id":73464,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3734:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73466,"indexExpression":{"id":73465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3740:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3734:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3699:43:153"},{"expression":{"id":73483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73468,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"3757:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73470,"indexExpression":{"id":73469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3768:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3757:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73479,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3855:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73380,"src":"3855:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3876:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":73472,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3797:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73378,"src":"3797:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73471,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"3789:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3817:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"3789:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73476,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3836:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3836:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3789:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3757:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73484,"nodeType":"ExpressionStatement","src":"3757:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3662:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73455,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3666:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3672:6:153","memberName":"length","nodeType":"MemberAccess","src":"3666:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3662:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73486,"initializationExpression":{"assignments":[73451],"declarations":[{"constant":false,"id":73451,"mutability":"mutable","name":"i","nameLocation":"3655:1:153","nodeType":"VariableDeclaration","scope":73486,"src":"3647:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73453,"initialValue":{"hexValue":"30","id":73452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3659:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3647:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3680:3:153","subExpression":{"id":73458,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3682:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73460,"nodeType":"ExpressionStatement","src":"3680:3:153"},"nodeType":"ForStatement","src":"3642:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73487,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3907:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3918:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3922:5:153","memberName":"value","nodeType":"MemberAccess","src":"3918:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3907:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"3903:163:153","trueBody":{"id":73510,"nodeType":"Block","src":"3929:137:153","statements":[{"assignments":[73492,null],"declarations":[{"constant":false,"id":73492,"mutability":"mutable","name":"success","nameLocation":"3949:7:153","nodeType":"VariableDeclaration","scope":73510,"src":"3944:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73491,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73503,"initialValue":{"arguments":[{"hexValue":"","id":73501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4006:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73493,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3961:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3961:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3972:4:153","memberName":"call","nodeType":"MemberAccess","src":"3961:15:153","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":73500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3984:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:5:153","memberName":"value","nodeType":"MemberAccess","src":"3984:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73498,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3996:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3984:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3961:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3943:66:153"},{"expression":{"arguments":[{"id":73505,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73492,"src":"4031:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73506,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"4040:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4023:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"ExpressionStatement","src":"4023:32:153"}]}},{"eventCall":{"arguments":[{"id":73513,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"4104:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":73512,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73375,"src":"4081:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":73514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73515,"nodeType":"EmitStatement","src":"4076:39:153"}]},"documentation":{"id":73396,"nodeType":"StructuredDocumentation","src":"3088:186:153","text":" @dev Sends batch of messages through Mirror contracts.\n @param calls Array of `MessageCall` structs representing calls to send messages through Mirror contracts."},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"3288:16:153","parameters":{"id":73401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73400,"mutability":"mutable","name":"calls","nameLocation":"3328:5:153","nodeType":"VariableDeclaration","scope":73517,"src":"3305:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":73398,"nodeType":"UserDefinedTypeName","pathNode":{"id":73397,"name":"MessageCall","nameLocations":["3305:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3305:11:153"},"referencedDeclaration":73383,"src":"3305:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":73399,"nodeType":"ArrayTypeName","src":"3305:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3304:30:153"},"returnParameters":{"id":73402,"nodeType":"ParameterList","parameters":[],"src":"3352:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73722,"nodeType":"FunctionDefinition","src":"4570:1684:153","nodes":[],"body":{"id":73721,"nodeType":"Block","src":"4740:1514:153","nodes":[],"statements":[{"assignments":[73538],"declarations":[{"constant":false,"id":73538,"mutability":"mutable","name":"programIds","nameLocation":"4767:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4750:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73537,"nodeType":"ArrayTypeName","src":"4750:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":73545,"initialValue":{"arguments":[{"expression":{"id":73542,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4794:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4800:6:153","memberName":"length","nodeType":"MemberAccess","src":"4794:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4780:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":73539,"name":"address","nodeType":"ElementaryTypeName","src":"4784:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73540,"nodeType":"ArrayTypeName","src":"4784:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":73544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4750:57:153"},{"assignments":[73550],"declarations":[{"constant":false,"id":73550,"mutability":"mutable","name":"messageIds","nameLocation":"4834:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4817:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4817:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73549,"nodeType":"ArrayTypeName","src":"4817:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73557,"initialValue":{"arguments":[{"expression":{"id":73554,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4861:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4867:6:153","memberName":"length","nodeType":"MemberAccess","src":"4861:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4847:13:153","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":73551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4851:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73552,"nodeType":"ArrayTypeName","src":"4851:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4817:57:153"},{"assignments":[73560],"declarations":[{"constant":false,"id":73560,"mutability":"mutable","name":"wvara","nameLocation":"4898:5:153","nodeType":"VariableDeclaration","scope":73721,"src":"4885:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"4885:12:153"},"referencedDeclaration":75006,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":73566,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"4919:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74684,"src":"4919:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":73564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:153"},{"assignments":[73568],"declarations":[{"constant":false,"id":73568,"mutability":"mutable","name":"consumed","nameLocation":"4959:8:153","nodeType":"VariableDeclaration","scope":73721,"src":"4951:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73567,"name":"uint256","nodeType":"ElementaryTypeName","src":"4951:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73569,"nodeType":"VariableDeclarationStatement","src":"4951:16:153"},{"body":{"id":73690,"nodeType":"Block","src":"5021:1012:153","statements":[{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"createProgramCall","nameLocation":"5062:17:153","nodeType":"VariableDeclaration","scope":73690,"src":"5035:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":73582,"nodeType":"UserDefinedTypeName","pathNode":{"id":73581,"name":"CreateProgramCall","nameLocations":["5035:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"5035:17:153"},"referencedDeclaration":73395,"src":"5035:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":73587,"initialValue":{"baseExpression":{"id":73584,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5082:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73586,"indexExpression":{"id":73585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5088:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5082:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5035:55:153"},{"expression":{"id":73591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73588,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5104:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":73589,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5116:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5134:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5116:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5104:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73592,"nodeType":"ExpressionStatement","src":"5104:39:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73594,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5166:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5178:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:5:153","memberName":"value","nodeType":"MemberAccess","src":"5178:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5166:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73599,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5207:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5217:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5221:5:153","memberName":"value","nodeType":"MemberAccess","src":"5217:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73598,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"5189:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5189:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5158:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73604,"nodeType":"ExpressionStatement","src":"5158:70:153"},{"assignments":[73606],"declarations":[{"constant":false,"id":73606,"mutability":"mutable","name":"programId","nameLocation":"5251:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5243:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73605,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73618,"initialValue":{"arguments":[{"expression":{"id":73609,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5284:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5302:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"5284:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":73611,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5310:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":73388,"src":"5310:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":73615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5342:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5334:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73613,"name":"address","nodeType":"ElementaryTypeName","src":"5334:7:153","typeDescriptions":{}}},"id":73616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73607,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"5263:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74916,"src":"5263:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":73617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5263:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5243:105:153"},{"expression":{"id":73623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73619,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"5362:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":73621,"indexExpression":{"id":73620,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5373:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5362:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73622,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5378:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5362:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73624,"nodeType":"ExpressionStatement","src":"5362:25:153"},{"assignments":[73627],"declarations":[{"constant":false,"id":73627,"mutability":"mutable","name":"mirror","nameLocation":"5409:6:153","nodeType":"VariableDeclaration","scope":73690,"src":"5401:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":73626,"nodeType":"UserDefinedTypeName","pathNode":{"id":73625,"name":"IMirror","nameLocations":["5401:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"5401:7:153"},"referencedDeclaration":74395,"src":"5401:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"id":73631,"initialValue":{"arguments":[{"id":73629,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5426:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73628,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"5418:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5401:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73632,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5455:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5455:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":73634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5486:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5455:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73671,"nodeType":"IfStatement","src":"5451:390:153","trueBody":{"id":73670,"nodeType":"Block","src":"5489:352:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":73639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5555:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5559:6:153","memberName":"sender","nodeType":"MemberAccess","src":"5555:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5575:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5567:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73641,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:153","typeDescriptions":{}}},"id":73644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73645,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5582:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5600:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5582:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73637,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5536:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":73638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"5536:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":73647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73648,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73366,"src":"5613:18:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5507:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5507:144:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73651,"nodeType":"ExpressionStatement","src":"5507:144:153"},{"expression":{"arguments":[{"arguments":[{"id":73655,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5691:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73656,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5702:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5720:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5702:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73653,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5677:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":73654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5683:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"5677:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":73658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73659,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73369,"src":"5733:13:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:15:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5669:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:80:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73662,"nodeType":"ExpressionStatement","src":"5669:80:153"},{"expression":{"arguments":[{"expression":{"id":73666,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5797:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5797:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73663,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5767:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5774:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":74355,"src":"5767:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73669,"nodeType":"ExpressionStatement","src":"5767:59:153"}]}},{"assignments":[73673],"declarations":[{"constant":false,"id":73673,"mutability":"mutable","name":"messageId","nameLocation":"5863:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5855:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":73683,"initialValue":{"arguments":[{"expression":{"id":73679,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5946:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":73390,"src":"5946:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5977:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":73674,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5891:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"5891:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73676,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5917:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5935:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5917:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5891:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5855:128:153"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73684,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"5997:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73686,"indexExpression":{"id":73685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"6008:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5997:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73687,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73673,"src":"6013:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5997:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73689,"nodeType":"ExpressionStatement","src":"5997:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"4998:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73575,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5002:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5008:6:153","memberName":"length","nodeType":"MemberAccess","src":"5002:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73691,"initializationExpression":{"assignments":[73571],"declarations":[{"constant":false,"id":73571,"mutability":"mutable","name":"i","nameLocation":"4991:1:153","nodeType":"VariableDeclaration","scope":73691,"src":"4983:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73573,"initialValue":{"hexValue":"30","id":73572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4995:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4983:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:3:153","subExpression":{"id":73578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5018:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73580,"nodeType":"ExpressionStatement","src":"5016:3:153"},"nodeType":"ForStatement","src":"4978:1055:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73692,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6047:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6058:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6062:5:153","memberName":"value","nodeType":"MemberAccess","src":"6058:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6047:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73716,"nodeType":"IfStatement","src":"6043:163:153","trueBody":{"id":73715,"nodeType":"Block","src":"6069:137:153","statements":[{"assignments":[73697,null],"declarations":[{"constant":false,"id":73697,"mutability":"mutable","name":"success","nameLocation":"6089:7:153","nodeType":"VariableDeclaration","scope":73715,"src":"6084:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73696,"name":"bool","nodeType":"ElementaryTypeName","src":"6084:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73708,"initialValue":{"arguments":[{"hexValue":"","id":73706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6146:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73698,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6101:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6105:6:153","memberName":"sender","nodeType":"MemberAccess","src":"6101:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:4:153","memberName":"call","nodeType":"MemberAccess","src":"6101:15:153","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":73705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6124:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:5:153","memberName":"value","nodeType":"MemberAccess","src":"6124:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73703,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6136:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6124:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6101:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6083:66:153"},{"expression":{"arguments":[{"id":73710,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73697,"src":"6171:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73711,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"6180:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6163:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73714,"nodeType":"ExpressionStatement","src":"6163:32:153"}]}},{"expression":{"components":[{"id":73717,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"6224:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73718,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"6236:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6223:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":73533,"id":73720,"nodeType":"Return","src":"6216:31:153"}]},"documentation":{"id":73518,"nodeType":"StructuredDocumentation","src":"4128:437:153","text":" @dev Creates batch of programs through Router contract and sends initial messages to them.\n @param router The Router contract address.\n @param calls Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\n @return programIds Array of created program IDs.\n @return messageIds Array of message IDs for the initial messages sent to each created program."},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"4579:18:153","parameters":{"id":73526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73521,"mutability":"mutable","name":"router","nameLocation":"4606:6:153","nodeType":"VariableDeclaration","scope":73722,"src":"4598:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"4598:7:153"},"referencedDeclaration":74990,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":73525,"mutability":"mutable","name":"calls","nameLocation":"4643:5:153","nodeType":"VariableDeclaration","scope":73722,"src":"4614:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":73523,"nodeType":"UserDefinedTypeName","pathNode":{"id":73522,"name":"CreateProgramCall","nameLocations":["4614:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"4614:17:153"},"referencedDeclaration":73395,"src":"4614:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":73524,"nodeType":"ArrayTypeName","src":"4614:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4597:52:153"},"returnParameters":{"id":73533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4700:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73527,"name":"address","nodeType":"ElementaryTypeName","src":"4700:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73528,"nodeType":"ArrayTypeName","src":"4700:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":73532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4718:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4718:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73531,"nodeType":"ArrayTypeName","src":"4718:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4699:36:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73727,"nodeType":"FunctionDefinition","src":"6644:29:153","nodes":[],"body":{"id":73726,"nodeType":"Block","src":"6671:2:153","nodes":[],"statements":[]},"documentation":{"id":73723,"nodeType":"StructuredDocumentation","src":"6260:379:153","text":" @dev Fallback function to receive Ether.\n This is necessary because `function _transferEther(address destination, uint128 value)` in `Mirror`\n will send `value` (ETH) to address of `BatchMulticall` smart contract\n (since in context of call `IMirror(messageCall.mirror).sendMessage(...)`: `msg.sender = address(BatchMulticall)`)"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73724,"nodeType":"ParameterList","parameters":[],"src":"6651:2:153"},"returnParameters":{"id":73725,"nodeType":"ParameterList","parameters":[],"src":"6671:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":73353,"nodeType":"StructuredDocumentation","src":"234:955:153","text":" @dev BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts.\n This is useful for reducing number of transactions when interacting with multiple Mirror contracts.\n Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network.\n Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster.\n This contract allows both batching of messages and batching of program creations.\n Furthermore, when creating programs, it offers full flow:\n - approval of WVARA ERC20 token for created program (Mirror)\n - top-up of executable balance for created program in WVARA ERC20 token (Mirror)\n - sending initial message to created program (Mirror)\n All of these actions are done in one transaction, which is much faster than doing them separately."},"fullyImplemented":true,"linearizedBaseContracts":[73728],"name":"BatchMulticall","nameLocation":"1199:14:153","scope":73729,"usedErrors":[73360,73363,73366,73369],"usedEvents":[73375]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":153} \ No newline at end of file +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"ApproveFailed","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RefundFailed","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]}],"bytecode":{"object":"0x608080604052346015576108b7908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;;;;;;;;;;;;;;:::i;:::-;3392:27;;;;:::i;:::-;3430:16;1190:5485;3462:13;1190:5485;3477:16;;;;;;3581:9;3561:70;3581:9;;;3569:21;;;3561:70;:::i;:::-;1190:5485;3662:16;;;;;;3581:9;;;3907:20;;3903:163;;3642:251;4081:34;1190:5485;;;;;;;;;;;;;;;:::i;:::-;4081:34;;;1190:5485;3903:163;1190:5485;3581:9;;3984:20;3581:9;;;3984:20;:::i;:::-;3961:10;:48;;;;:::i;:::-;;1190:5485;;;3903:163;;;1190:5485;;;;;;;;;3680:3;3734:8;;;;;:::i;:::-;1190:5485;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;3836:17;1190:5485;3836:17;3855:19;-1:-1:-1;;;;;3836:17:153;1190:5485;3789:93;3836:17;;;:::i;:::-;1190:5485;3855:19;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;;3789:93;;1190:5485;3789:93;;;:::i;:::-;;;;;;;;;1190:5485;3789:93;;;3680:3;1190:5485;3757:125;;;;;;:::i;:::-;1190:5485;;3647:13;;3789:93;;1190:5485;3789:93;;;;;;;;;1190:5485;3789:93;;;:::i;:::-;;;1190:5485;;;;;;;3789:93;;1190:5485;;;;3789:93;;;-1:-1:-1;3789:93:153;;;1190:5485;;;;;;;;;3495:3;3526:8;3514:26;1190:5485;3526:8;-1:-1:-1;;;;;3526:14:153;1190:5485;3526:8;;;;;:::i;:::-;:14;;:::i;:::-;1190:5485;3514:26;;:::i;:::-;3495:3;1190:5485;3462:13;;1190:5485;;;-1:-1:-1;;1190:5485:153;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1190:5485:153;;;;4847:27;;;:::i;:::-;1190:5485;;;;;;4919:20;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;;;1190:5485;4919:20;;;1190:5485;-1:-1:-1;1190:5485:153;;;;-1:-1:-1;;1190:5485:153;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;4951:16;4983:13;1190:5485;5016:3;4998:16;;;;;;1190:5485;;;;;;;;;;;;;;;;;5104:39;5116:27;;;;-1:-1:-1;;;;;5116:27:153;;;:::i;5104:39::-;5178:9;5158:70;5178:9;;;5166:21;;;5158:70;:::i;:::-;1190:5485;;5263:85;1190:5485;;;;;;;;;5263:85;;1190:5485;;;5263:85;;1190:5485;5310:22;;;1190:5485;;;;;5342:4;1190:5485;;;;5263:85;;;;;;;1190:5485;5263:85;;;5016:3;5362:25;;;;;:::i;:::-;-1:-1:-1;;;;;1190:5485:153;;;;;;;5455:28;;;-1:-1:-1;;;;;5455:28:153;;;:::i;:::-;1190:5485;5451:390;;5016:3;5917:27;;5891:92;5917:27;5946:29;-1:-1:-1;;;;;5917:27:153;1190:5485;5917:27;;:::i;:::-;1190:5485;5946:29;1190:5485;5946:29;;;;:::i;5891:92::-;;;;;;;;;1190:5485;5891:92;;;5016:3;1190:5485;5997:25;;;;;;:::i;:::-;1190:5485;;4983:13;;5891:92;;1190:5485;5891:92;;;;;;;;;1190:5485;5891:92;;;:::i;:::-;;;1190:5485;;;;;;;5891:92;;;;;-1:-1:-1;5891:92:153;;5451:390;5582:28;1190:5485;-1:-1:-1;;;;;5263:85:153;5582:28;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;5536:75;;5555:10;1190:5485;5536:75;;1190:5485;5342:4;1190:5485;;;;;;;;;5536:75;;;;;;;1190:5485;5536:75;;;5451:390;1190:5485;;;;5702:28;1190:5485;-1:-1:-1;;;;;1190:5485:153;5702:28;;;:::i;:::-;1190:5485;;;;;;;;;;;5677:54;;;1190:5485;5677:54;;1190:5485;;;;;;5677:54;;;;;;;1190:5485;5677:54;;;5451:390;1190:5485;;;;5797:28;;;:::i;:::-;5767:59;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;5767:59;;1190:5485;;5767:59;;1190:5485;;5767:59;1190:5485;5767:59;;;;;;;;;;-1:-1:-1;;;;;5917:27:153;5946:29;5767:59;5891:92;5767:59;1190:5485;5767:59;;;5451:390;;;;;;;;;;;5767:59;1190:5485;5767:59;;;:::i;:::-;;;;1190:5485;;;;;;;;;5677:54;;;;1190:5485;5677:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1190:5485;;;;;;;;;5536:75;;;;1190:5485;5536:75;;;;;;;;;:::i;:::-;;;;5263:85;;;;;1190:5485;5263:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;4998:16;;;;;5178:9;6047:20;;6043:163;;4978:1055;1190:5485;;;;;;;;;;;;;;;5116:27;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;6043:163;1190:5485;5178:9;;6124:20;5178:9;;;6124:20;:::i;:::-;6101:10;:48;;;;:::i;:::-;;1190:5485;;;6043:163;;;4919:20;;;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;:::i;:::-;;;;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1190:5485:153;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;:::i;:::-;;;;-1:-1:-1;1190:5485:153;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts. This is useful for reducing number of transactions when interacting with multiple Mirror contracts. Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network. Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster. This contract allows both batching of messages and batching of program creations. Furthermore, when creating programs, it offers full flow: - approval of WVARA ERC20 token for created program (Mirror) - top-up of executable balance for created program in WVARA ERC20 token (Mirror) - sending initial message to created program (Mirror) All of these actions are done in one transaction, which is much faster than doing them separately.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"Approving WVARA token for created program (Mirror) failed.\"}],\"InsufficientValue(uint256,uint256)\":[{\"details\":\"There is not enough value sent with transaction to cover calls.\"}],\"RefundFailed()\":[{\"details\":\"Refunding excess value to sender failed.\"}],\"TransferFromFailed()\":[{\"details\":\"Transferring WVARA token from sender to this contract failed.\"}]},\"events\":{\"SendMessageBatchResult(bytes32[])\":{\"details\":\"Emitted when batch of messages is sent. It contains array of message ids that were sent.\"}},\"kind\":\"dev\",\"methods\":{\"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])\":{\"details\":\"Creates batch of programs through Router contract and sends initial messages to them.\",\"params\":{\"calls\":\"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\",\"router\":\"The Router contract address.\"},\"returns\":{\"_0\":\"programIds Array of created program IDs.\",\"_1\":\"messageIds Array of message IDs for the initial messages sent to each created program.\"}},\"sendMessageBatch((address,bytes,uint128)[])\":{\"details\":\"Sends batch of messages through Mirror contracts.\",\"params\":{\"calls\":\"Array of `MessageCall` structs representing calls to send messages through Mirror contracts.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf\",\"dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343\",\"dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApproveFailed"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"RefundFailed"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":{"details":"Creates batch of programs through Router contract and sends initial messages to them.","params":{"calls":"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.","router":"The Router contract address."},"returns":{"_0":"programIds Array of created program IDs.","_1":"messageIds Array of message IDs for the initial messages sent to each created program."}},"sendMessageBatch((address,bytes,uint128)[])":{"details":"Sends batch of messages through Mirror contracts.","params":{"calls":"Array of `MessageCall` structs representing calls to send messages through Mirror contracts."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74","urls":["bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf","dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f","urls":["bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343","dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73729,"exportedSymbols":{"BatchMulticall":[73728],"IMirror":[74400],"IRouter":[74995],"IWrappedVara":[75011]},"nodeType":"SourceUnit","src":"74:6602:153","nodes":[{"id":73346,"nodeType":"PragmaDirective","src":"74:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":73348,"nodeType":"ImportDirective","src":"100:40:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74401,"symbolAliases":[{"foreign":{"id":73347,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"108:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73350,"nodeType":"ImportDirective","src":"141:40:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74996,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74995,"src":"149:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73352,"nodeType":"ImportDirective","src":"182:50:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":75012,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"190:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73728,"nodeType":"ContractDefinition","src":"1190:5485:153","nodes":[{"id":73360,"nodeType":"ErrorDefinition","src":"1312:58:153","nodes":[],"documentation":{"id":73354,"nodeType":"StructuredDocumentation","src":"1220:87:153","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1318:17:153","parameters":{"id":73359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73356,"mutability":"mutable","name":"expected","nameLocation":"1344:8:153","nodeType":"VariableDeclaration","scope":73360,"src":"1336:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73358,"mutability":"mutable","name":"actual","nameLocation":"1362:6:153","nodeType":"VariableDeclaration","scope":73360,"src":"1354:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1335:34:153"}},{"id":73363,"nodeType":"ErrorDefinition","src":"1445:21:153","nodes":[],"documentation":{"id":73361,"nodeType":"StructuredDocumentation","src":"1376:64:153","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1451:12:153","parameters":{"id":73362,"nodeType":"ParameterList","parameters":[],"src":"1463:2:153"}},{"id":73366,"nodeType":"ErrorDefinition","src":"1562:27:153","nodes":[],"documentation":{"id":73364,"nodeType":"StructuredDocumentation","src":"1472:85:153","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1568:18:153","parameters":{"id":73365,"nodeType":"ParameterList","parameters":[],"src":"1586:2:153"}},{"id":73369,"nodeType":"ErrorDefinition","src":"1682:22:153","nodes":[],"documentation":{"id":73367,"nodeType":"StructuredDocumentation","src":"1595:82:153","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1688:13:153","parameters":{"id":73368,"nodeType":"ParameterList","parameters":[],"src":"1701:2:153"}},{"id":73375,"nodeType":"EventDefinition","src":"1827:51:153","nodes":[],"anonymous":false,"documentation":{"id":73370,"nodeType":"StructuredDocumentation","src":"1710:112:153","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1833:22:153","parameters":{"id":73374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73373,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1866:10:153","nodeType":"VariableDeclaration","scope":73375,"src":"1856:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1856:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73372,"nodeType":"ArrayTypeName","src":"1856:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1855:22:153"}},{"id":73383,"nodeType":"StructDefinition","src":"2150:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":73376,"nodeType":"StructuredDocumentation","src":"1884:261:153","text":" @dev Represents call to send message through Mirror contract.\n It will be sent through `IMirror(mirror).sendMessage{value: value}(payload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73378,"mutability":"mutable","name":"mirror","nameLocation":"2187:6:153","nodeType":"VariableDeclaration","scope":73383,"src":"2179:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73377,"name":"address","nodeType":"ElementaryTypeName","src":"2179:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73380,"mutability":"mutable","name":"payload","nameLocation":"2209:7:153","nodeType":"VariableDeclaration","scope":73383,"src":"2203:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73379,"name":"bytes","nodeType":"ElementaryTypeName","src":"2203:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73382,"mutability":"mutable","name":"value","nameLocation":"2234:5:153","nodeType":"VariableDeclaration","scope":73383,"src":"2226:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73381,"name":"uint128","nodeType":"ElementaryTypeName","src":"2226:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2157:11:153","scope":73728,"visibility":"public"},{"id":73395,"nodeType":"StructDefinition","src":"2922:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":73384,"nodeType":"StructuredDocumentation","src":"2252:665:153","text":" @dev Represents call to create Mirror through Router contract.\n It will be sent through `IRouter(router).createProgram(codeId, salt, address(this))`,\n where `overrideInitializer` is always `address(this)` since we want to send initial message from this contract.\n Then, if `topUpValue` is greater than 0, it will approve WVARA token and top up executable balance for created Mirror.\n Finally, it will send initial message to created Mirror through `IMirror(programId).sendMessage{value: initValue}(initPayload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73386,"mutability":"mutable","name":"codeId","nameLocation":"2965:6:153","nodeType":"VariableDeclaration","scope":73395,"src":"2957:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2957:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73388,"mutability":"mutable","name":"salt","nameLocation":"2989:4:153","nodeType":"VariableDeclaration","scope":73395,"src":"2981:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2981:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73390,"mutability":"mutable","name":"initPayload","nameLocation":"3009:11:153","nodeType":"VariableDeclaration","scope":73395,"src":"3003:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73389,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73392,"mutability":"mutable","name":"initValue","nameLocation":"3038:9:153","nodeType":"VariableDeclaration","scope":73395,"src":"3030:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73391,"name":"uint128","nodeType":"ElementaryTypeName","src":"3030:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":73394,"mutability":"mutable","name":"topUpValue","nameLocation":"3065:10:153","nodeType":"VariableDeclaration","scope":73395,"src":"3057:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73393,"name":"uint128","nodeType":"ElementaryTypeName","src":"3057:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2929:17:153","scope":73728,"visibility":"public"},{"id":73517,"nodeType":"FunctionDefinition","src":"3279:843:153","nodes":[],"body":{"id":73516,"nodeType":"Block","src":"3352:770:153","nodes":[],"statements":[{"assignments":[73407],"declarations":[{"constant":false,"id":73407,"mutability":"mutable","name":"messageIds","nameLocation":"3379:10:153","nodeType":"VariableDeclaration","scope":73516,"src":"3362:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3362:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73406,"nodeType":"ArrayTypeName","src":"3362:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73414,"initialValue":{"arguments":[{"expression":{"id":73411,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3406:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:6:153","memberName":"length","nodeType":"MemberAccess","src":"3406:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3392:13:153","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":73408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3396:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73409,"nodeType":"ArrayTypeName","src":"3396:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3362:57:153"},{"assignments":[73416],"declarations":[{"constant":false,"id":73416,"mutability":"mutable","name":"consumed","nameLocation":"3438:8:153","nodeType":"VariableDeclaration","scope":73516,"src":"3430:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3430:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73417,"nodeType":"VariableDeclarationStatement","src":"3430:16:153"},{"body":{"id":73436,"nodeType":"Block","src":"3500:51:153","statements":[{"expression":{"id":73434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73429,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3514:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":73430,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3526:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73432,"indexExpression":{"id":73431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3532:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3526:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3535:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3526:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3514:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73435,"nodeType":"ExpressionStatement","src":"3514:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3477:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73423,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3481:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3487:6:153","memberName":"length","nodeType":"MemberAccess","src":"3481:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73437,"initializationExpression":{"assignments":[73419],"declarations":[{"constant":false,"id":73419,"mutability":"mutable","name":"i","nameLocation":"3470:1:153","nodeType":"VariableDeclaration","scope":73437,"src":"3462:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73421,"initialValue":{"hexValue":"30","id":73420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3474:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3462:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3495:3:153","subExpression":{"id":73426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3497:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73428,"nodeType":"ExpressionStatement","src":"3495:3:153"},"nodeType":"ForStatement","src":"3457:94:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73439,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3569:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73440,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3581:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3585:5:153","memberName":"value","nodeType":"MemberAccess","src":"3581:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3569:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73444,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3610:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3620:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:5:153","memberName":"value","nodeType":"MemberAccess","src":"3620:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73443,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"3592:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73438,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3561:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73449,"nodeType":"ExpressionStatement","src":"3561:70:153"},{"body":{"id":73485,"nodeType":"Block","src":"3685:208:153","statements":[{"assignments":[73463],"declarations":[{"constant":false,"id":73463,"mutability":"mutable","name":"messageCall","nameLocation":"3720:11:153","nodeType":"VariableDeclaration","scope":73485,"src":"3699:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":73462,"nodeType":"UserDefinedTypeName","pathNode":{"id":73461,"name":"MessageCall","nameLocations":["3699:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3699:11:153"},"referencedDeclaration":73383,"src":"3699:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":73467,"initialValue":{"baseExpression":{"id":73464,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3734:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73466,"indexExpression":{"id":73465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3740:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3734:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3699:43:153"},{"expression":{"id":73483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73468,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"3757:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73470,"indexExpression":{"id":73469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3768:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3757:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73479,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3855:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73380,"src":"3855:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3876:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":73472,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3797:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73378,"src":"3797:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73471,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"3789:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":73474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3817:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74340,"src":"3789:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73476,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3836:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3836:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3789:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3757:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73484,"nodeType":"ExpressionStatement","src":"3757:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3662:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73455,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3666:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3672:6:153","memberName":"length","nodeType":"MemberAccess","src":"3666:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3662:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73486,"initializationExpression":{"assignments":[73451],"declarations":[{"constant":false,"id":73451,"mutability":"mutable","name":"i","nameLocation":"3655:1:153","nodeType":"VariableDeclaration","scope":73486,"src":"3647:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73453,"initialValue":{"hexValue":"30","id":73452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3659:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3647:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3680:3:153","subExpression":{"id":73458,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3682:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73460,"nodeType":"ExpressionStatement","src":"3680:3:153"},"nodeType":"ForStatement","src":"3642:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73487,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3907:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3918:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3922:5:153","memberName":"value","nodeType":"MemberAccess","src":"3918:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3907:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"3903:163:153","trueBody":{"id":73510,"nodeType":"Block","src":"3929:137:153","statements":[{"assignments":[73492,null],"declarations":[{"constant":false,"id":73492,"mutability":"mutable","name":"success","nameLocation":"3949:7:153","nodeType":"VariableDeclaration","scope":73510,"src":"3944:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73491,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73503,"initialValue":{"arguments":[{"hexValue":"","id":73501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4006:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73493,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3961:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3961:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3972:4:153","memberName":"call","nodeType":"MemberAccess","src":"3961:15:153","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":73500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3984:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:5:153","memberName":"value","nodeType":"MemberAccess","src":"3984:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73498,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3996:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3984:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3961:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3943:66:153"},{"expression":{"arguments":[{"id":73505,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73492,"src":"4031:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73506,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"4040:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4023:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"ExpressionStatement","src":"4023:32:153"}]}},{"eventCall":{"arguments":[{"id":73513,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"4104:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":73512,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73375,"src":"4081:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":73514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73515,"nodeType":"EmitStatement","src":"4076:39:153"}]},"documentation":{"id":73396,"nodeType":"StructuredDocumentation","src":"3088:186:153","text":" @dev Sends batch of messages through Mirror contracts.\n @param calls Array of `MessageCall` structs representing calls to send messages through Mirror contracts."},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"3288:16:153","parameters":{"id":73401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73400,"mutability":"mutable","name":"calls","nameLocation":"3328:5:153","nodeType":"VariableDeclaration","scope":73517,"src":"3305:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":73398,"nodeType":"UserDefinedTypeName","pathNode":{"id":73397,"name":"MessageCall","nameLocations":["3305:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3305:11:153"},"referencedDeclaration":73383,"src":"3305:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":73399,"nodeType":"ArrayTypeName","src":"3305:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3304:30:153"},"returnParameters":{"id":73402,"nodeType":"ParameterList","parameters":[],"src":"3352:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73722,"nodeType":"FunctionDefinition","src":"4570:1684:153","nodes":[],"body":{"id":73721,"nodeType":"Block","src":"4740:1514:153","nodes":[],"statements":[{"assignments":[73538],"declarations":[{"constant":false,"id":73538,"mutability":"mutable","name":"programIds","nameLocation":"4767:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4750:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73537,"nodeType":"ArrayTypeName","src":"4750:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":73545,"initialValue":{"arguments":[{"expression":{"id":73542,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4794:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4800:6:153","memberName":"length","nodeType":"MemberAccess","src":"4794:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4780:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":73539,"name":"address","nodeType":"ElementaryTypeName","src":"4784:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73540,"nodeType":"ArrayTypeName","src":"4784:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":73544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4750:57:153"},{"assignments":[73550],"declarations":[{"constant":false,"id":73550,"mutability":"mutable","name":"messageIds","nameLocation":"4834:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4817:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4817:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73549,"nodeType":"ArrayTypeName","src":"4817:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73557,"initialValue":{"arguments":[{"expression":{"id":73554,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4861:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4867:6:153","memberName":"length","nodeType":"MemberAccess","src":"4861:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4847:13:153","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":73551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4851:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73552,"nodeType":"ArrayTypeName","src":"4851:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4817:57:153"},{"assignments":[73560],"declarations":[{"constant":false,"id":73560,"mutability":"mutable","name":"wvara","nameLocation":"4898:5:153","nodeType":"VariableDeclaration","scope":73721,"src":"4885:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75011,"src":"4885:12:153"},"referencedDeclaration":75011,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":73566,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"4919:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74995","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74689,"src":"4919:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":73564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:153"},{"assignments":[73568],"declarations":[{"constant":false,"id":73568,"mutability":"mutable","name":"consumed","nameLocation":"4959:8:153","nodeType":"VariableDeclaration","scope":73721,"src":"4951:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73567,"name":"uint256","nodeType":"ElementaryTypeName","src":"4951:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73569,"nodeType":"VariableDeclarationStatement","src":"4951:16:153"},{"body":{"id":73690,"nodeType":"Block","src":"5021:1012:153","statements":[{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"createProgramCall","nameLocation":"5062:17:153","nodeType":"VariableDeclaration","scope":73690,"src":"5035:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":73582,"nodeType":"UserDefinedTypeName","pathNode":{"id":73581,"name":"CreateProgramCall","nameLocations":["5035:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"5035:17:153"},"referencedDeclaration":73395,"src":"5035:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":73587,"initialValue":{"baseExpression":{"id":73584,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5082:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73586,"indexExpression":{"id":73585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5088:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5082:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5035:55:153"},{"expression":{"id":73591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73588,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5104:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":73589,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5116:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5134:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5116:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5104:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73592,"nodeType":"ExpressionStatement","src":"5104:39:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73594,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5166:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5178:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:5:153","memberName":"value","nodeType":"MemberAccess","src":"5178:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5166:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73599,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5207:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5217:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5221:5:153","memberName":"value","nodeType":"MemberAccess","src":"5217:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73598,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"5189:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5189:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5158:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73604,"nodeType":"ExpressionStatement","src":"5158:70:153"},{"assignments":[73606],"declarations":[{"constant":false,"id":73606,"mutability":"mutable","name":"programId","nameLocation":"5251:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5243:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73605,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73618,"initialValue":{"arguments":[{"expression":{"id":73609,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5284:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5302:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"5284:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":73611,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5310:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":73388,"src":"5310:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":73615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5342:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5334:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73613,"name":"address","nodeType":"ElementaryTypeName","src":"5334:7:153","typeDescriptions":{}}},"id":73616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73607,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"5263:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74995","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74921,"src":"5263:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":73617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5263:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5243:105:153"},{"expression":{"id":73623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73619,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"5362:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":73621,"indexExpression":{"id":73620,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5373:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5362:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73622,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5378:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5362:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73624,"nodeType":"ExpressionStatement","src":"5362:25:153"},{"assignments":[73627],"declarations":[{"constant":false,"id":73627,"mutability":"mutable","name":"mirror","nameLocation":"5409:6:153","nodeType":"VariableDeclaration","scope":73690,"src":"5401:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"},"typeName":{"id":73626,"nodeType":"UserDefinedTypeName","pathNode":{"id":73625,"name":"IMirror","nameLocations":["5401:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74400,"src":"5401:7:153"},"referencedDeclaration":74400,"src":"5401:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"visibility":"internal"}],"id":73631,"initialValue":{"arguments":[{"id":73629,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5426:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73628,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"5418:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5401:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73632,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5455:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5455:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":73634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5486:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5455:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73671,"nodeType":"IfStatement","src":"5451:390:153","trueBody":{"id":73670,"nodeType":"Block","src":"5489:352:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":73639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5555:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5559:6:153","memberName":"sender","nodeType":"MemberAccess","src":"5555:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5575:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5567:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73641,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:153","typeDescriptions":{}}},"id":73644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73645,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5582:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5600:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5582:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73637,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5536:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":73638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"5536:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":73647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73648,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73366,"src":"5613:18:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5507:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5507:144:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73651,"nodeType":"ExpressionStatement","src":"5507:144:153"},{"expression":{"arguments":[{"arguments":[{"id":73655,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5691:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73656,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5702:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5720:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5702:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73653,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5677:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":73654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5683:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"5677:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":73658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73659,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73369,"src":"5733:13:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:15:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5669:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:80:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73662,"nodeType":"ExpressionStatement","src":"5669:80:153"},{"expression":{"arguments":[{"expression":{"id":73666,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5797:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5797:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73663,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5767:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5774:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":74360,"src":"5767:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73669,"nodeType":"ExpressionStatement","src":"5767:59:153"}]}},{"assignments":[73673],"declarations":[{"constant":false,"id":73673,"mutability":"mutable","name":"messageId","nameLocation":"5863:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5855:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":73683,"initialValue":{"arguments":[{"expression":{"id":73679,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5946:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":73390,"src":"5946:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5977:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":73674,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5891:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74340,"src":"5891:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73676,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5917:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5935:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5917:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5891:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5855:128:153"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73684,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"5997:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73686,"indexExpression":{"id":73685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"6008:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5997:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73687,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73673,"src":"6013:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5997:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73689,"nodeType":"ExpressionStatement","src":"5997:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"4998:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73575,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5002:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5008:6:153","memberName":"length","nodeType":"MemberAccess","src":"5002:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73691,"initializationExpression":{"assignments":[73571],"declarations":[{"constant":false,"id":73571,"mutability":"mutable","name":"i","nameLocation":"4991:1:153","nodeType":"VariableDeclaration","scope":73691,"src":"4983:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73573,"initialValue":{"hexValue":"30","id":73572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4995:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4983:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:3:153","subExpression":{"id":73578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5018:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73580,"nodeType":"ExpressionStatement","src":"5016:3:153"},"nodeType":"ForStatement","src":"4978:1055:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73692,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6047:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6058:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6062:5:153","memberName":"value","nodeType":"MemberAccess","src":"6058:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6047:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73716,"nodeType":"IfStatement","src":"6043:163:153","trueBody":{"id":73715,"nodeType":"Block","src":"6069:137:153","statements":[{"assignments":[73697,null],"declarations":[{"constant":false,"id":73697,"mutability":"mutable","name":"success","nameLocation":"6089:7:153","nodeType":"VariableDeclaration","scope":73715,"src":"6084:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73696,"name":"bool","nodeType":"ElementaryTypeName","src":"6084:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73708,"initialValue":{"arguments":[{"hexValue":"","id":73706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6146:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73698,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6101:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6105:6:153","memberName":"sender","nodeType":"MemberAccess","src":"6101:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:4:153","memberName":"call","nodeType":"MemberAccess","src":"6101:15:153","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":73705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6124:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:5:153","memberName":"value","nodeType":"MemberAccess","src":"6124:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73703,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6136:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6124:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6101:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6083:66:153"},{"expression":{"arguments":[{"id":73710,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73697,"src":"6171:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73711,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"6180:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6163:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73714,"nodeType":"ExpressionStatement","src":"6163:32:153"}]}},{"expression":{"components":[{"id":73717,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"6224:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73718,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"6236:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6223:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":73533,"id":73720,"nodeType":"Return","src":"6216:31:153"}]},"documentation":{"id":73518,"nodeType":"StructuredDocumentation","src":"4128:437:153","text":" @dev Creates batch of programs through Router contract and sends initial messages to them.\n @param router The Router contract address.\n @param calls Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\n @return programIds Array of created program IDs.\n @return messageIds Array of message IDs for the initial messages sent to each created program."},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"4579:18:153","parameters":{"id":73526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73521,"mutability":"mutable","name":"router","nameLocation":"4606:6:153","nodeType":"VariableDeclaration","scope":73722,"src":"4598:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74995","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74995,"src":"4598:7:153"},"referencedDeclaration":74995,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74995","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":73525,"mutability":"mutable","name":"calls","nameLocation":"4643:5:153","nodeType":"VariableDeclaration","scope":73722,"src":"4614:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":73523,"nodeType":"UserDefinedTypeName","pathNode":{"id":73522,"name":"CreateProgramCall","nameLocations":["4614:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"4614:17:153"},"referencedDeclaration":73395,"src":"4614:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":73524,"nodeType":"ArrayTypeName","src":"4614:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4597:52:153"},"returnParameters":{"id":73533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4700:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73527,"name":"address","nodeType":"ElementaryTypeName","src":"4700:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73528,"nodeType":"ArrayTypeName","src":"4700:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":73532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4718:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4718:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73531,"nodeType":"ArrayTypeName","src":"4718:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4699:36:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73727,"nodeType":"FunctionDefinition","src":"6644:29:153","nodes":[],"body":{"id":73726,"nodeType":"Block","src":"6671:2:153","nodes":[],"statements":[]},"documentation":{"id":73723,"nodeType":"StructuredDocumentation","src":"6260:379:153","text":" @dev Fallback function to receive Ether.\n This is necessary because `function _transferEther(address destination, uint128 value)` in `Mirror`\n will send `value` (ETH) to address of `BatchMulticall` smart contract\n (since in context of call `IMirror(messageCall.mirror).sendMessage(...)`: `msg.sender = address(BatchMulticall)`)"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73724,"nodeType":"ParameterList","parameters":[],"src":"6651:2:153"},"returnParameters":{"id":73725,"nodeType":"ParameterList","parameters":[],"src":"6671:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":73353,"nodeType":"StructuredDocumentation","src":"234:955:153","text":" @dev BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts.\n This is useful for reducing number of transactions when interacting with multiple Mirror contracts.\n Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network.\n Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster.\n This contract allows both batching of messages and batching of program creations.\n Furthermore, when creating programs, it offers full flow:\n - approval of WVARA ERC20 token for created program (Mirror)\n - top-up of executable balance for created program in WVARA ERC20 token (Mirror)\n - sending initial message to created program (Mirror)\n All of these actions are done in one transaction, which is much faster than doing them separately."},"fullyImplemented":true,"linearizedBaseContracts":[73728],"name":"BatchMulticall","nameLocation":"1199:14:153","scope":73729,"usedErrors":[73360,73363,73366,73369],"usedEvents":[73375]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":153} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DemoCaller.json b/ethexe/ethereum/abi/DemoCaller.json index 30689a6ebf5..f6b7bcc2471 100644 --- a/ethexe/ethereum/abi/DemoCaller.json +++ b/ethexe/ethereum/abi/DemoCaller.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_varaEthProgram","type":"address","internalType":"contract IMirror"}],"stateMutability":"nonpayable"},{"type":"function","name":"VARA_ETH_PROGRAM","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMirror"}],"stateMutability":"view"},{"type":"function","name":"methodName","inputs":[{"name":"isPanic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"onErrorReply","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onErrorReplyCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOnMethodNameCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOn_methodName","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ErrorReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"replyCode","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MethodNameReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":{"object":"0x60a034607357601f61040d38819003918201601f19168301916001600160401b03831184841017607757808492602094604052833981010312607357516001600160a01b0381168103607357608052604051610381908161008c823960805181818160700152818161019b01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:1305:173;;;;;;574:34;;198:1305;;;;;;;;574:34;198:1305;;;;;;;;;;;;;;;;;-1:-1:-1;198:1305:173;;;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;242:41;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;621:79;;:::i;:::-;198:1305;;;;;;;;;1212:28;198:1305;;;;;;;1212:28;198:1305;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;977:25;;;198:1305;;;;;;977:25;;;;;;:::i;:::-;198:1305;;;;;;;;;;948:61;;198:1305;;948:61;;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:61;;198:1305;;;;;;;948:16;198:1305;948:61;;;;;;198:1305;948:61;;;198:1305;;;;;;;;;948:61;;198:1305;948:61;;198:1305;948:61;;;;;;198:1305;948:61;;;:::i;:::-;;;198:1305;;;;;;;948:61;;;;;-1:-1:-1;948:61:173;;;198:1305;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:43;621:79;198:1305;621:79;198:1305;621:79;;;:::i;:::-;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;1451:43;;;;198:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173;706:158;787:16;-1:-1:-1;;;;;198:1305:173;765:10;:39;761:97;;706:158::o;761:97::-;827:20;;;;;;;","linkReferences":{},"immutableReferences":{"86346":[{"start":112,"length":32},{"start":411,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"VARA_ETH_PROGRAM()":"dab506b2","methodName(bool)":"96b3d5a9","onErrorReply(bytes32,bytes,bytes4)":"4a646c7f","onErrorReplyCalled()":"8ed2570c","replyOnMethodNameCalled()":"d24012f8","replyOn_methodName(bytes32)":"b52ab555"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"_varaEthProgram\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ErrorReplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MethodNameReplied\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VARA_ETH_PROGRAM\",\"outputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isPanic\",\"type\":\"bool\"}],\"name\":\"methodName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"onErrorReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onErrorReplyCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"replyOnMethodNameCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"replyOn_methodName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onErrorReply(bytes32,bytes,bytes4)\":{\"details\":\"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.\",\"params\":{\"messageId\":\"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.\",\"payload\":\"Payload of reply (e.g., error message in case of `UserspacePanic`).\",\"replyCode\":\"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"replyOn_methodName(bytes32)\":{\"notice\":\"forge-lint: disable-next-line(mixed-case-function)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/DemoCaller.sol\":\"DemoCaller\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186\",\"dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d\",\"dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMirror","name":"_varaEthProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"UnauthorizedCaller"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":false}],"type":"event","name":"ErrorReplied","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false}],"type":"event","name":"MethodNameReplied","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VARA_ETH_PROGRAM","outputs":[{"internalType":"contract IMirror","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isPanic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"methodName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"payable","type":"function","name":"onErrorReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"onErrorReplyCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"replyOnMethodNameCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"replyOn_methodName"}],"devdoc":{"kind":"dev","methods":{"onErrorReply(bytes32,bytes,bytes4)":{"details":"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.","params":{"messageId":"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.","payload":"Payload of reply (e.g., error message in case of `UserspacePanic`).","replyCode":"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`)."}}},"version":1},"userdoc":{"kind":"user","methods":{"replyOn_methodName(bytes32)":{"notice":"forge-lint: disable-next-line(mixed-case-function)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97","urls":["bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186","dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46","urls":["bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d","dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":86348,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86350,"contract":"test/DemoCaller.sol:DemoCaller","label":"onErrorReplyCalled","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"ast":{"absolutePath":"test/DemoCaller.sol","id":86456,"exportedSymbols":{"DemoCaller":[86455],"IDemoCallbacks":[86468],"IMirror":[74395]},"nodeType":"SourceUnit","src":"74:1430:173","nodes":[{"id":86337,"nodeType":"PragmaDirective","src":"74:24:173","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86339,"nodeType":"ImportDirective","src":"100:40:173","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86456,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":86338,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86341,"nodeType":"ImportDirective","src":"141:55:173","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86456,"sourceUnit":86469,"symbolAliases":[{"foreign":{"id":86340,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86468,"src":"149:14:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86455,"nodeType":"ContractDefinition","src":"198:1305:173","nodes":[{"id":86346,"nodeType":"VariableDeclaration","src":"242:41:173","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86345,"nodeType":"UserDefinedTypeName","pathNode":{"id":86344,"name":"IMirror","nameLocations":["242:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"242:7:173"},"referencedDeclaration":74395,"src":"242:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"public"},{"id":86348,"nodeType":"VariableDeclaration","src":"290:35:173","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86347,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86350,"nodeType":"VariableDeclaration","src":"331:30:173","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86349,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86354,"nodeType":"EventDefinition","src":"368:43:173","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:173","parameters":{"id":86353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86352,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:173","nodeType":"VariableDeclaration","scope":86354,"src":"392:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:173"}},{"id":86362,"nodeType":"EventDefinition","src":"417:71:173","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:173","parameters":{"id":86361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86356,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:173","nodeType":"VariableDeclaration","scope":86362,"src":"436:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86358,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:173","nodeType":"VariableDeclaration","scope":86362,"src":"455:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86357,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86360,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:173","nodeType":"VariableDeclaration","scope":86362,"src":"470:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86359,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:173"}},{"id":86364,"nodeType":"ErrorDefinition","src":"494:27:173","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:173","parameters":{"id":86363,"nodeType":"ParameterList","parameters":[],"src":"518:2:173"}},{"id":86375,"nodeType":"FunctionDefinition","src":"527:88:173","nodes":[],"body":{"id":86374,"nodeType":"Block","src":"564:51:173","nodes":[],"statements":[{"expression":{"id":86372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86370,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"574:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86371,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86367,"src":"593:15:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"src":"574:34:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86373,"nodeType":"ExpressionStatement","src":"574:34:173"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86367,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:173","nodeType":"VariableDeclaration","scope":86375,"src":"539:23:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86366,"nodeType":"UserDefinedTypeName","pathNode":{"id":86365,"name":"IMirror","nameLocations":["539:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"539:7:173"},"referencedDeclaration":74395,"src":"539:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"538:25:173"},"returnParameters":{"id":86369,"nodeType":"ParameterList","parameters":[],"src":"564:0:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86382,"nodeType":"ModifierDefinition","src":"621:79:173","nodes":[],"body":{"id":86381,"nodeType":"Block","src":"651:49:173","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86377,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86398,"src":"661:19:173","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:21:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86379,"nodeType":"ExpressionStatement","src":"661:21:173"},{"id":86380,"nodeType":"PlaceholderStatement","src":"692:1:173"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:173","parameters":{"id":86376,"nodeType":"ParameterList","parameters":[],"src":"648:2:173"},"virtual":false,"visibility":"internal"},{"id":86398,"nodeType":"FunctionDefinition","src":"706:158:173","nodes":[],"body":{"id":86397,"nodeType":"Block","src":"751:113:173","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86385,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:173","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"769:6:173","memberName":"sender","nodeType":"MemberAccess","src":"765:10:173","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86389,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"787:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}],"id":86388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"779:7:173","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86387,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:173","typeDescriptions":{}}},"id":86390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"765:39:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86396,"nodeType":"IfStatement","src":"761:97:173","trueBody":{"id":86395,"nodeType":"Block","src":"806:52:173","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86392,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86364,"src":"827:18:173","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:20:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":86394,"nodeType":"RevertStatement","src":"820:27:173"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:173","parameters":{"id":86383,"nodeType":"ParameterList","parameters":[],"src":"734:2:173"},"returnParameters":{"id":86384,"nodeType":"ParameterList","parameters":[],"src":"751:0:173"},"scope":86455,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86415,"nodeType":"FunctionDefinition","src":"870:146:173","nodes":[],"body":{"id":86414,"nodeType":"Block","src":"931:85:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86409,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86400,"src":"994:7:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86407,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:173","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"981:12:173","memberName":"encodePacked","nodeType":"MemberAccess","src":"977:16:173","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":86411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1004:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86405,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"948:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:11:173","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"948:28:173","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":86412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:61:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86404,"id":86413,"nodeType":"Return","src":"941:68:173"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:173","parameters":{"id":86401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86400,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:173","nodeType":"VariableDeclaration","scope":86415,"src":"890:12:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86399,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:173"},"returnParameters":{"id":86404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86415,"src":"922:7:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86432,"nodeType":"FunctionDefinition","src":"1081:166:173","nodes":[],"body":{"id":86431,"nodeType":"Block","src":"1156:91:173","nodes":[],"statements":[{"expression":{"id":86425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86423,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86348,"src":"1166:23:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1192:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1166:30:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86426,"nodeType":"ExpressionStatement","src":"1166:30:173"},{"eventCall":{"arguments":[{"id":86428,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86418,"src":"1230:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86427,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86354,"src":"1212:17:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:28:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86430,"nodeType":"EmitStatement","src":"1207:33:173"}]},"baseFunctions":[86467],"documentation":{"id":86416,"nodeType":"StructuredDocumentation","src":"1022:54:173","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86421,"kind":"modifierInvocation","modifierName":{"id":86420,"name":"onlyVaraEthProgram","nameLocations":["1137:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86382,"src":"1137:18:173"},"nodeType":"ModifierInvocation","src":"1137:18:173"}],"name":"replyOn_methodName","nameLocation":"1090:18:173","parameters":{"id":86419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86418,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:173","nodeType":"VariableDeclaration","scope":86432,"src":"1109:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:173"},"returnParameters":{"id":86422,"nodeType":"ParameterList","parameters":[],"src":"1156:0:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86454,"nodeType":"FunctionDefinition","src":"1253:248:173","nodes":[],"body":{"id":86453,"nodeType":"Block","src":"1400:101:173","nodes":[],"statements":[{"expression":{"id":86445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86443,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86350,"src":"1410:18:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1431:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1410:25:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86446,"nodeType":"ExpressionStatement","src":"1410:25:173"},{"eventCall":{"arguments":[{"id":86448,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86434,"src":"1464:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86449,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86436,"src":"1475:7:173","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86450,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86438,"src":"1484:9:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":86447,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86362,"src":"1451:12:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":86451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:43:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86452,"nodeType":"EmitStatement","src":"1446:48:173"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86441,"kind":"modifierInvocation","modifierName":{"id":86440,"name":"onlyVaraEthProgram","nameLocations":["1377:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86382,"src":"1377:18:173"},"nodeType":"ModifierInvocation","src":"1377:18:173"}],"name":"onErrorReply","nameLocation":"1262:12:173","parameters":{"id":86439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86434,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:173","nodeType":"VariableDeclaration","scope":86454,"src":"1275:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86436,"mutability":"mutable","name":"payload","nameLocation":"1309:7:173","nodeType":"VariableDeclaration","scope":86454,"src":"1294:22:173","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86435,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86438,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:173","nodeType":"VariableDeclaration","scope":86454,"src":"1318:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:173"},"returnParameters":{"id":86442,"nodeType":"ParameterList","parameters":[],"src":"1400:0:173"},"scope":86455,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86342,"name":"IDemoCallbacks","nameLocations":["221:14:173"],"nodeType":"IdentifierPath","referencedDeclaration":86468,"src":"221:14:173"},"id":86343,"nodeType":"InheritanceSpecifier","src":"221:14:173"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86455,86468,73742],"name":"DemoCaller","nameLocation":"207:10:173","scope":86456,"usedErrors":[86364],"usedEvents":[86354,86362]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":173} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_varaEthProgram","type":"address","internalType":"contract IMirror"}],"stateMutability":"nonpayable"},{"type":"function","name":"VARA_ETH_PROGRAM","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMirror"}],"stateMutability":"view"},{"type":"function","name":"methodName","inputs":[{"name":"isPanic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"onErrorReply","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onErrorReplyCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOnMethodNameCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOn_methodName","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ErrorReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"replyCode","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MethodNameReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":{"object":"0x60a034607357601f61040d38819003918201601f19168301916001600160401b03831184841017607757808492602094604052833981010312607357516001600160a01b0381168103607357608052604051610381908161008c823960805181818160700152818161019b01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:1305:173;;;;;;574:34;;198:1305;;;;;;;;574:34;198:1305;;;;;;;;;;;;;;;;;-1:-1:-1;198:1305:173;;;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;242:41;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;621:79;;:::i;:::-;198:1305;;;;;;;;;1212:28;198:1305;;;;;;;1212:28;198:1305;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;977:25;;;198:1305;;;;;;977:25;;;;;;:::i;:::-;198:1305;;;;;;;;;;948:61;;198:1305;;948:61;;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:61;;198:1305;;;;;;;948:16;198:1305;948:61;;;;;;198:1305;948:61;;;198:1305;;;;;;;;;948:61;;198:1305;948:61;;198:1305;948:61;;;;;;198:1305;948:61;;;:::i;:::-;;;198:1305;;;;;;;948:61;;;;;-1:-1:-1;948:61:173;;;198:1305;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:43;621:79;198:1305;621:79;198:1305;621:79;;;:::i;:::-;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;1451:43;;;;198:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173;706:158;787:16;-1:-1:-1;;;;;198:1305:173;765:10;:39;761:97;;706:158::o;761:97::-;827:20;;;;;;;","linkReferences":{},"immutableReferences":{"86582":[{"start":112,"length":32},{"start":411,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"VARA_ETH_PROGRAM()":"dab506b2","methodName(bool)":"96b3d5a9","onErrorReply(bytes32,bytes,bytes4)":"4a646c7f","onErrorReplyCalled()":"8ed2570c","replyOnMethodNameCalled()":"d24012f8","replyOn_methodName(bytes32)":"b52ab555"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"_varaEthProgram\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ErrorReplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MethodNameReplied\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VARA_ETH_PROGRAM\",\"outputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isPanic\",\"type\":\"bool\"}],\"name\":\"methodName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"onErrorReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onErrorReplyCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"replyOnMethodNameCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"replyOn_methodName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onErrorReply(bytes32,bytes,bytes4)\":{\"details\":\"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.\",\"params\":{\"messageId\":\"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.\",\"payload\":\"Payload of reply (e.g., error message in case of `UserspacePanic`).\",\"replyCode\":\"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"replyOn_methodName(bytes32)\":{\"notice\":\"forge-lint: disable-next-line(mixed-case-function)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/DemoCaller.sol\":\"DemoCaller\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343\",\"dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186\",\"dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d\",\"dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMirror","name":"_varaEthProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"UnauthorizedCaller"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":false}],"type":"event","name":"ErrorReplied","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false}],"type":"event","name":"MethodNameReplied","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VARA_ETH_PROGRAM","outputs":[{"internalType":"contract IMirror","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isPanic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"methodName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"payable","type":"function","name":"onErrorReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"onErrorReplyCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"replyOnMethodNameCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"replyOn_methodName"}],"devdoc":{"kind":"dev","methods":{"onErrorReply(bytes32,bytes,bytes4)":{"details":"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.","params":{"messageId":"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.","payload":"Payload of reply (e.g., error message in case of `UserspacePanic`).","replyCode":"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`)."}}},"version":1},"userdoc":{"kind":"user","methods":{"replyOn_methodName(bytes32)":{"notice":"forge-lint: disable-next-line(mixed-case-function)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f","urls":["bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343","dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97","urls":["bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186","dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46","urls":["bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d","dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":86584,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86586,"contract":"test/DemoCaller.sol:DemoCaller","label":"onErrorReplyCalled","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"ast":{"absolutePath":"test/DemoCaller.sol","id":86692,"exportedSymbols":{"DemoCaller":[86691],"IDemoCallbacks":[86704],"IMirror":[74400]},"nodeType":"SourceUnit","src":"74:1430:173","nodes":[{"id":86573,"nodeType":"PragmaDirective","src":"74:24:173","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86575,"nodeType":"ImportDirective","src":"100:40:173","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86692,"sourceUnit":74401,"symbolAliases":[{"foreign":{"id":86574,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"108:7:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86577,"nodeType":"ImportDirective","src":"141:55:173","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86692,"sourceUnit":86705,"symbolAliases":[{"foreign":{"id":86576,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86704,"src":"149:14:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86691,"nodeType":"ContractDefinition","src":"198:1305:173","nodes":[{"id":86582,"nodeType":"VariableDeclaration","src":"242:41:173","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:173","scope":86691,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"},"typeName":{"id":86581,"nodeType":"UserDefinedTypeName","pathNode":{"id":86580,"name":"IMirror","nameLocations":["242:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74400,"src":"242:7:173"},"referencedDeclaration":74400,"src":"242:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"visibility":"public"},{"id":86584,"nodeType":"VariableDeclaration","src":"290:35:173","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:173","scope":86691,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86583,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86586,"nodeType":"VariableDeclaration","src":"331:30:173","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:173","scope":86691,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86585,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86590,"nodeType":"EventDefinition","src":"368:43:173","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:173","parameters":{"id":86589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86588,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:173","nodeType":"VariableDeclaration","scope":86590,"src":"392:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:173"}},{"id":86598,"nodeType":"EventDefinition","src":"417:71:173","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:173","parameters":{"id":86597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86592,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:173","nodeType":"VariableDeclaration","scope":86598,"src":"436:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86594,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:173","nodeType":"VariableDeclaration","scope":86598,"src":"455:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86593,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86596,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:173","nodeType":"VariableDeclaration","scope":86598,"src":"470:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86595,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:173"}},{"id":86600,"nodeType":"ErrorDefinition","src":"494:27:173","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:173","parameters":{"id":86599,"nodeType":"ParameterList","parameters":[],"src":"518:2:173"}},{"id":86611,"nodeType":"FunctionDefinition","src":"527:88:173","nodes":[],"body":{"id":86610,"nodeType":"Block","src":"564:51:173","nodes":[],"statements":[{"expression":{"id":86608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86606,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86582,"src":"574:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86607,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86603,"src":"593:15:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"src":"574:34:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":86609,"nodeType":"ExpressionStatement","src":"574:34:173"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86603,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:173","nodeType":"VariableDeclaration","scope":86611,"src":"539:23:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"},"typeName":{"id":86602,"nodeType":"UserDefinedTypeName","pathNode":{"id":86601,"name":"IMirror","nameLocations":["539:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74400,"src":"539:7:173"},"referencedDeclaration":74400,"src":"539:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"538:25:173"},"returnParameters":{"id":86605,"nodeType":"ParameterList","parameters":[],"src":"564:0:173"},"scope":86691,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86618,"nodeType":"ModifierDefinition","src":"621:79:173","nodes":[],"body":{"id":86617,"nodeType":"Block","src":"651:49:173","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86613,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86634,"src":"661:19:173","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:21:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86615,"nodeType":"ExpressionStatement","src":"661:21:173"},{"id":86616,"nodeType":"PlaceholderStatement","src":"692:1:173"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:173","parameters":{"id":86612,"nodeType":"ParameterList","parameters":[],"src":"648:2:173"},"virtual":false,"visibility":"internal"},{"id":86634,"nodeType":"FunctionDefinition","src":"706:158:173","nodes":[],"body":{"id":86633,"nodeType":"Block","src":"751:113:173","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86621,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:173","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"769:6:173","memberName":"sender","nodeType":"MemberAccess","src":"765:10:173","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86625,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86582,"src":"787:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}],"id":86624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"779:7:173","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86623,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:173","typeDescriptions":{}}},"id":86626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"765:39:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86632,"nodeType":"IfStatement","src":"761:97:173","trueBody":{"id":86631,"nodeType":"Block","src":"806:52:173","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86628,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86600,"src":"827:18:173","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:20:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":86630,"nodeType":"RevertStatement","src":"820:27:173"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:173","parameters":{"id":86619,"nodeType":"ParameterList","parameters":[],"src":"734:2:173"},"returnParameters":{"id":86620,"nodeType":"ParameterList","parameters":[],"src":"751:0:173"},"scope":86691,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86651,"nodeType":"FunctionDefinition","src":"870:146:173","nodes":[],"body":{"id":86650,"nodeType":"Block","src":"931:85:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86645,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86636,"src":"994:7:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:173","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"981:12:173","memberName":"encodePacked","nodeType":"MemberAccess","src":"977:16:173","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":86647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1004:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86641,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86582,"src":"948:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":86642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:11:173","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74340,"src":"948:28:173","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":86648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:61:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86640,"id":86649,"nodeType":"Return","src":"941:68:173"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:173","parameters":{"id":86637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86636,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:173","nodeType":"VariableDeclaration","scope":86651,"src":"890:12:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86635,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:173"},"returnParameters":{"id":86640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86651,"src":"922:7:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:173"},"scope":86691,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86668,"nodeType":"FunctionDefinition","src":"1081:166:173","nodes":[],"body":{"id":86667,"nodeType":"Block","src":"1156:91:173","nodes":[],"statements":[{"expression":{"id":86661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86659,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86584,"src":"1166:23:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1192:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1166:30:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86662,"nodeType":"ExpressionStatement","src":"1166:30:173"},{"eventCall":{"arguments":[{"id":86664,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86654,"src":"1230:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86663,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86590,"src":"1212:17:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:28:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86666,"nodeType":"EmitStatement","src":"1207:33:173"}]},"baseFunctions":[86703],"documentation":{"id":86652,"nodeType":"StructuredDocumentation","src":"1022:54:173","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86657,"kind":"modifierInvocation","modifierName":{"id":86656,"name":"onlyVaraEthProgram","nameLocations":["1137:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86618,"src":"1137:18:173"},"nodeType":"ModifierInvocation","src":"1137:18:173"}],"name":"replyOn_methodName","nameLocation":"1090:18:173","parameters":{"id":86655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86654,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:173","nodeType":"VariableDeclaration","scope":86668,"src":"1109:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:173"},"returnParameters":{"id":86658,"nodeType":"ParameterList","parameters":[],"src":"1156:0:173"},"scope":86691,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86690,"nodeType":"FunctionDefinition","src":"1253:248:173","nodes":[],"body":{"id":86689,"nodeType":"Block","src":"1400:101:173","nodes":[],"statements":[{"expression":{"id":86681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86679,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86586,"src":"1410:18:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1431:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1410:25:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86682,"nodeType":"ExpressionStatement","src":"1410:25:173"},{"eventCall":{"arguments":[{"id":86684,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86670,"src":"1464:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86685,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86672,"src":"1475:7:173","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86686,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86674,"src":"1484:9:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":86683,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86598,"src":"1451:12:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":86687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:43:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86688,"nodeType":"EmitStatement","src":"1446:48:173"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86677,"kind":"modifierInvocation","modifierName":{"id":86676,"name":"onlyVaraEthProgram","nameLocations":["1377:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86618,"src":"1377:18:173"},"nodeType":"ModifierInvocation","src":"1377:18:173"}],"name":"onErrorReply","nameLocation":"1262:12:173","parameters":{"id":86675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86670,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:173","nodeType":"VariableDeclaration","scope":86690,"src":"1275:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86672,"mutability":"mutable","name":"payload","nameLocation":"1309:7:173","nodeType":"VariableDeclaration","scope":86690,"src":"1294:22:173","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86671,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86674,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:173","nodeType":"VariableDeclaration","scope":86690,"src":"1318:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86673,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:173"},"returnParameters":{"id":86678,"nodeType":"ParameterList","parameters":[],"src":"1400:0:173"},"scope":86691,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86578,"name":"IDemoCallbacks","nameLocations":["221:14:173"],"nodeType":"IdentifierPath","referencedDeclaration":86704,"src":"221:14:173"},"id":86579,"nodeType":"InheritanceSpecifier","src":"221:14:173"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86691,86704,73742],"name":"DemoCaller","nameLocation":"207:10:173","scope":86692,"usedErrors":[86600],"usedEvents":[86590,86598]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":173} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Gear.json b/ethexe/ethereum/abi/Gear.json index 22391659fde..cf88a859e15 100644 --- a/ethexe/ethereum/abi/Gear.json +++ b/ethexe/ethereum/abi/Gear.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"COMPUTATION_THRESHOLD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"WVARA_PER_SECOND","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760a19081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32858:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32858:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;2071:1;1515:32858;;;;;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;1855:13;1515:32858;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;2383:18;1515:32858;;;;;;-1:-1:-1;;1515:32858:169;;;;;2203:1;1515:32858;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPUTATION_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WVARA_PER_SECOND\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Library for core protocol utility functions for hashing, validation, and consensus-related logic. It provides: - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions) - Validator set management with era-based switching and threshold configuration - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures with transient storage to prevent double counting of signatures - Era and timeline utilities for selecting correct validator sets based on timestamp The library acts as a shared foundation for consensus, validation, and commitment verification across all protocol components.\",\"errors\":{\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"COMPUTATION_THRESHOLD\":{\"details\":\"The threshold for computation cost in gear gas. 2.5 * (10 ** 9) of gear gas.\"},\"VALIDATORS_THRESHOLD_DENOMINATOR\":{\"details\":\"The validators threshold denominator.\"},\"VALIDATORS_THRESHOLD_NUMERATOR\":{\"details\":\"2/3 of validators must sign the commitment for it to be valid.The validators threshold numerator.\"},\"WVARA_PER_SECOND\":{\"details\":\"The amount of WVara tokens to be paid per compute second. 10 WVARA tokens per compute second.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Gear.sol\":\"Gear\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"stateMutability":"view","type":"function","name":"COMPUTATION_THRESHOLD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WVARA_PER_SECOND","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"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/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84100,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84099],"Hashes":[41483],"IRouter":[74990],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:34300:169","nodes":[{"id":82835,"nodeType":"PragmaDirective","src":"74:24:169","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82837,"nodeType":"ImportDirective","src":"100:80:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":82836,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82839,"nodeType":"ImportDirective","src":"181:78:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":82838,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82841,"nodeType":"ImportDirective","src":"260:75:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":82840,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82843,"nodeType":"ImportDirective","src":"336:97:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":82842,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82845,"nodeType":"ImportDirective","src":"434:73:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":82844,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82847,"nodeType":"ImportDirective","src":"508:66:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":82846,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82849,"nodeType":"ImportDirective","src":"575:52:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":82848,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82851,"nodeType":"ImportDirective","src":"628:73:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":82850,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82853,"nodeType":"ImportDirective","src":"702:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":82852,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"710:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84099,"nodeType":"ContractDefinition","src":"1515:32858:169","nodes":[{"id":82857,"nodeType":"UsingForDirective","src":"1534:24:169","nodes":[],"global":false,"libraryName":{"id":82855,"name":"ECDSA","nameLocations":["1540:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:169"},"typeName":{"id":82856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":82860,"nodeType":"UsingForDirective","src":"1563:35:169","nodes":[],"global":false,"libraryName":{"id":82858,"name":"MessageHashUtils","nameLocations":["1569:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:169"},"typeName":{"id":82859,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":82862,"nodeType":"UsingForDirective","src":"1604:26:169","nodes":[],"global":false,"libraryName":{"id":82861,"name":"TransientSlot","nameLocations":["1610:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:169"}},{"id":82864,"nodeType":"UsingForDirective","src":"1635:27:169","nodes":[],"global":false,"libraryName":{"id":82863,"name":"SlotDerivation","nameLocations":["1641:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:169"}},{"id":82868,"nodeType":"VariableDeclaration","src":"1808:60:169","nodes":[],"constant":true,"documentation":{"id":82865,"nodeType":"StructuredDocumentation","src":"1691:112:169","text":" @dev The threshold for computation cost in gear gas.\n 2.5 * (10 ** 9) of gear gas."},"functionSelector":"7841919a","mutability":"constant","name":"COMPUTATION_THRESHOLD","nameLocation":"1831:21:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82866,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":82867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:13:169","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":82872,"nodeType":"VariableDeclaration","src":"2014:58:169","nodes":[],"constant":true,"documentation":{"id":82869,"nodeType":"StructuredDocumentation","src":"1875:134:169","text":" @dev 2/3 of validators must sign the commitment for it to be valid.\n @dev The validators threshold numerator."},"functionSelector":"db3fe3f1","mutability":"constant","name":"VALIDATORS_THRESHOLD_NUMERATOR","nameLocation":"2038:30:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82870,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":82871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2071:1:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":82876,"nodeType":"VariableDeclaration","src":"2144:60:169","nodes":[],"constant":true,"documentation":{"id":82873,"nodeType":"StructuredDocumentation","src":"2078:61:169","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2168:32:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82874,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":82875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:169","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":82880,"nodeType":"VariableDeclaration","src":"2340:61:169","nodes":[],"constant":true,"documentation":{"id":82877,"nodeType":"StructuredDocumentation","src":"2211:124:169","text":" @dev The amount of WVara tokens to be paid per compute second.\n 10 WVARA tokens per compute second."},"functionSelector":"2c184e1c","mutability":"constant","name":"WVARA_PER_SECOND","nameLocation":"2364:16:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82878,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":82879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:18:169","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":82883,"nodeType":"ErrorDefinition","src":"2528:32:169","nodes":[],"documentation":{"id":82881,"nodeType":"StructuredDocumentation","src":"2428:95:169","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2534:23:169","parameters":{"id":82882,"nodeType":"ParameterList","parameters":[],"src":"2557:2:169"}},{"id":82886,"nodeType":"ErrorDefinition","src":"2652:38:169","nodes":[],"documentation":{"id":82884,"nodeType":"StructuredDocumentation","src":"2566:81:169","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2658:29:169","parameters":{"id":82885,"nodeType":"ParameterList","parameters":[],"src":"2687:2:169"}},{"id":82889,"nodeType":"ErrorDefinition","src":"2768:26:169","nodes":[],"documentation":{"id":82887,"nodeType":"StructuredDocumentation","src":"2696:67:169","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2774:17:169","parameters":{"id":82888,"nodeType":"ParameterList","parameters":[],"src":"2791:2:169"}},{"id":82892,"nodeType":"ErrorDefinition","src":"2883:35:169","nodes":[],"documentation":{"id":82890,"nodeType":"StructuredDocumentation","src":"2800:78:169","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2889:26:169","parameters":{"id":82891,"nodeType":"ParameterList","parameters":[],"src":"2915:2:169"}},{"id":82895,"nodeType":"ErrorDefinition","src":"3037:36:169","nodes":[],"documentation":{"id":82893,"nodeType":"StructuredDocumentation","src":"2924:108:169","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3043:27:169","parameters":{"id":82894,"nodeType":"ParameterList","parameters":[],"src":"3070:2:169"}},{"id":82898,"nodeType":"ErrorDefinition","src":"3251:36:169","nodes":[],"documentation":{"id":82896,"nodeType":"StructuredDocumentation","src":"3079:167:169","text":" @dev Thrown when the timestamp of an era is equal to the timestamp of the previous era.\n Should never happen, because the implementation."},"errorSelector":"f26224af","name":"ErasTimestampMustNotBeEqual","nameLocation":"3257:27:169","parameters":{"id":82897,"nodeType":"ParameterList","parameters":[],"src":"3284:2:169"}},{"id":82901,"nodeType":"ErrorDefinition","src":"3441:39:169","nodes":[],"documentation":{"id":82899,"nodeType":"StructuredDocumentation","src":"3293:143:169","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3447:30:169","parameters":{"id":82900,"nodeType":"ParameterList","parameters":[],"src":"3477:2:169"}},{"id":82907,"nodeType":"StructDefinition","src":"3768:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":82902,"nodeType":"StructuredDocumentation","src":"3507:256:169","text":" @dev Represents an aggregated public key.\n When present (`hasAggregatedPublicKey` is `true`), it is checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":82904,"mutability":"mutable","name":"x","nameLocation":"3813:1:169","nodeType":"VariableDeclaration","scope":82907,"src":"3805:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82903,"name":"uint256","nodeType":"ElementaryTypeName","src":"3805:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82906,"mutability":"mutable","name":"y","nameLocation":"3832:1:169","nodeType":"VariableDeclaration","scope":82907,"src":"3824:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82905,"name":"uint256","nodeType":"ElementaryTypeName","src":"3824:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3775:19:169","scope":84099,"visibility":"public"},{"id":82928,"nodeType":"StructDefinition","src":"3909:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":82908,"nodeType":"StructuredDocumentation","src":"3846:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":82912,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4299:19:169","nodeType":"VariableDeclaration","scope":82928,"src":"4279:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82911,"nodeType":"UserDefinedTypeName","pathNode":{"id":82910,"name":"AggregatedPublicKey","nameLocations":["4279:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"4279:19:169"},"referencedDeclaration":82907,"src":"4279:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82915,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4626:40:169","nodeType":"VariableDeclaration","scope":82928,"src":"4618:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82914,"name":"address","nodeType":"ElementaryTypeName","src":"4618:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82920,"mutability":"mutable","name":"map","nameLocation":"4884:3:169","nodeType":"VariableDeclaration","scope":82928,"src":"4859:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":82919,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":82917,"name":"address","nodeType":"ElementaryTypeName","src":"4867:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4859:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":82918,"name":"bool","nodeType":"ElementaryTypeName","src":"4878:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":82924,"mutability":"mutable","name":"list","nameLocation":"4976:4:169","nodeType":"VariableDeclaration","scope":82928,"src":"4966:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82922,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82923,"nodeType":"ArrayTypeName","src":"4966:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82927,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5086:16:169","nodeType":"VariableDeclaration","scope":82928,"src":"5078:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82926,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3916:10:169","scope":84099,"visibility":"public"},{"id":82940,"nodeType":"StructDefinition","src":"5186:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":82929,"nodeType":"StructuredDocumentation","src":"5115:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":82932,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5238:19:169","nodeType":"VariableDeclaration","scope":82940,"src":"5218:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82931,"nodeType":"UserDefinedTypeName","pathNode":{"id":82930,"name":"AggregatedPublicKey","nameLocations":["5218:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"5218:19:169"},"referencedDeclaration":82907,"src":"5218:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82934,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5275:40:169","nodeType":"VariableDeclaration","scope":82940,"src":"5267:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82933,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82937,"mutability":"mutable","name":"list","nameLocation":"5335:4:169","nodeType":"VariableDeclaration","scope":82940,"src":"5325:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82935,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82936,"nodeType":"ArrayTypeName","src":"5325:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82939,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5357:16:169","nodeType":"VariableDeclaration","scope":82940,"src":"5349:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82938,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5193:14:169","scope":84099,"visibility":"public"},{"id":82951,"nodeType":"StructDefinition","src":"5451:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":82941,"nodeType":"StructuredDocumentation","src":"5386:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":82944,"mutability":"mutable","name":"mirror","nameLocation":"5566:6:169","nodeType":"VariableDeclaration","scope":82951,"src":"5558:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82943,"name":"address","nodeType":"ElementaryTypeName","src":"5558:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82947,"mutability":"mutable","name":"wrappedVara","nameLocation":"5673:11:169","nodeType":"VariableDeclaration","scope":82951,"src":"5665:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82946,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82950,"mutability":"mutable","name":"middleware","nameLocation":"5787:10:169","nodeType":"VariableDeclaration","scope":82951,"src":"5779:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82949,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5458:11:169","scope":84099,"visibility":"public"},{"id":82959,"nodeType":"StructDefinition","src":"5866:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":82952,"nodeType":"StructuredDocumentation","src":"5810:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":82955,"mutability":"mutable","name":"id","nameLocation":"6010:2:169","nodeType":"VariableDeclaration","scope":82959,"src":"6002:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6002:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82958,"mutability":"mutable","name":"valid","nameLocation":"6102:5:169","nodeType":"VariableDeclaration","scope":82959,"src":"6097:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82957,"name":"bool","nodeType":"ElementaryTypeName","src":"6097:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5873:14:169","scope":84099,"visibility":"public"},{"id":82972,"nodeType":"StructDefinition","src":"6177:541:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":82960,"nodeType":"StructuredDocumentation","src":"6120:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":82965,"mutability":"mutable","name":"transitions","nameLocation":"6319:11:169","nodeType":"VariableDeclaration","scope":82972,"src":"6301:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82963,"nodeType":"UserDefinedTypeName","pathNode":{"id":82962,"name":"StateTransition","nameLocations":["6301:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"6301:15:169"},"referencedDeclaration":83167,"src":"6301:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82964,"nodeType":"ArrayTypeName","src":"6301:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":82968,"mutability":"mutable","name":"head","nameLocation":"6436:4:169","nodeType":"VariableDeclaration","scope":82972,"src":"6428:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6428:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82971,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6691:20:169","nodeType":"VariableDeclaration","scope":82972,"src":"6683:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6184:15:169","scope":84099,"visibility":"public"},{"id":82986,"nodeType":"StructDefinition","src":"6786:226:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":82973,"nodeType":"StructuredDocumentation","src":"6724:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":82975,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6829:22:169","nodeType":"VariableDeclaration","scope":82986,"src":"6824:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82974,"name":"bool","nodeType":"ElementaryTypeName","src":"6824:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82978,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6881:19:169","nodeType":"VariableDeclaration","scope":82986,"src":"6861:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82977,"nodeType":"UserDefinedTypeName","pathNode":{"id":82976,"name":"AggregatedPublicKey","nameLocations":["6861:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"6861:19:169"},"referencedDeclaration":82907,"src":"6861:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82980,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6916:33:169","nodeType":"VariableDeclaration","scope":82986,"src":"6910:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":82979,"name":"bytes","nodeType":"ElementaryTypeName","src":"6910:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82983,"mutability":"mutable","name":"validators","nameLocation":"6969:10:169","nodeType":"VariableDeclaration","scope":82986,"src":"6959:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82981,"name":"address","nodeType":"ElementaryTypeName","src":"6959:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82982,"nodeType":"ArrayTypeName","src":"6959:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82985,"mutability":"mutable","name":"eraIndex","nameLocation":"6997:8:169","nodeType":"VariableDeclaration","scope":82986,"src":"6989:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82984,"name":"uint256","nodeType":"ElementaryTypeName","src":"6989:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6793:20:169","scope":84099,"visibility":"public"},{"id":83020,"nodeType":"StructDefinition","src":"7075:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":82987,"nodeType":"StructuredDocumentation","src":"7018:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":82990,"mutability":"mutable","name":"blockHash","nameLocation":"7212:9:169","nodeType":"VariableDeclaration","scope":83020,"src":"7204:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7204:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82993,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7340:14:169","nodeType":"VariableDeclaration","scope":83020,"src":"7333:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82992,"name":"uint48","nodeType":"ElementaryTypeName","src":"7333:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":82996,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7453:26:169","nodeType":"VariableDeclaration","scope":83020,"src":"7445:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7445:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82999,"mutability":"mutable","name":"expiry","nameLocation":"7715:6:169","nodeType":"VariableDeclaration","scope":83020,"src":"7709:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82998,"name":"uint8","nodeType":"ElementaryTypeName","src":"7709:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83004,"mutability":"mutable","name":"chainCommitment","nameLocation":"7841:15:169","nodeType":"VariableDeclaration","scope":83020,"src":"7823:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":83002,"nodeType":"UserDefinedTypeName","pathNode":{"id":83001,"name":"ChainCommitment","nameLocations":["7823:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":82972,"src":"7823:15:169"},"referencedDeclaration":82972,"src":"7823:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":83003,"nodeType":"ArrayTypeName","src":"7823:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83009,"mutability":"mutable","name":"codeCommitments","nameLocation":"7968:15:169","nodeType":"VariableDeclaration","scope":83020,"src":"7951:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":83007,"nodeType":"UserDefinedTypeName","pathNode":{"id":83006,"name":"CodeCommitment","nameLocations":["7951:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82959,"src":"7951:14:169"},"referencedDeclaration":82959,"src":"7951:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":83008,"nodeType":"ArrayTypeName","src":"7951:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83014,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8107:17:169","nodeType":"VariableDeclaration","scope":83020,"src":"8087:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":83012,"nodeType":"UserDefinedTypeName","pathNode":{"id":83011,"name":"RewardsCommitment","nameLocations":["8087:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":83030,"src":"8087:17:169"},"referencedDeclaration":83030,"src":"8087:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":83013,"nodeType":"ArrayTypeName","src":"8087:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83019,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8254:20:169","nodeType":"VariableDeclaration","scope":83020,"src":"8231:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":83017,"nodeType":"UserDefinedTypeName","pathNode":{"id":83016,"name":"ValidatorsCommitment","nameLocations":["8231:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"8231:20:169"},"referencedDeclaration":82986,"src":"8231:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":83018,"nodeType":"ArrayTypeName","src":"8231:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7082:15:169","scope":84099,"visibility":"public"},{"id":83030,"nodeType":"StructDefinition","src":"8346:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":83021,"nodeType":"StructuredDocumentation","src":"8287:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":83024,"mutability":"mutable","name":"operators","nameLocation":"8407:9:169","nodeType":"VariableDeclaration","scope":83030,"src":"8381:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":83023,"nodeType":"UserDefinedTypeName","pathNode":{"id":83022,"name":"OperatorRewardsCommitment","nameLocations":["8381:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":83036,"src":"8381:25:169"},"referencedDeclaration":83036,"src":"8381:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83027,"mutability":"mutable","name":"stakers","nameLocation":"8450:7:169","nodeType":"VariableDeclaration","scope":83030,"src":"8426:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":83026,"nodeType":"UserDefinedTypeName","pathNode":{"id":83025,"name":"StakerRewardsCommitment","nameLocations":["8426:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"8426:23:169"},"referencedDeclaration":83046,"src":"8426:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83029,"mutability":"mutable","name":"timestamp","nameLocation":"8474:9:169","nodeType":"VariableDeclaration","scope":83030,"src":"8467:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83028,"name":"uint48","nodeType":"ElementaryTypeName","src":"8467:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8353:17:169","scope":84099,"visibility":"public"},{"id":83036,"nodeType":"StructDefinition","src":"8564:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":83031,"nodeType":"StructuredDocumentation","src":"8496:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":83033,"mutability":"mutable","name":"amount","nameLocation":"8615:6:169","nodeType":"VariableDeclaration","scope":83036,"src":"8607:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83032,"name":"uint256","nodeType":"ElementaryTypeName","src":"8607:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83035,"mutability":"mutable","name":"root","nameLocation":"8639:4:169","nodeType":"VariableDeclaration","scope":83036,"src":"8631:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8631:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8571:25:169","scope":84099,"visibility":"public"},{"id":83046,"nodeType":"StructDefinition","src":"8722:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83037,"nodeType":"StructuredDocumentation","src":"8656:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83041,"mutability":"mutable","name":"distribution","nameLocation":"8779:12:169","nodeType":"VariableDeclaration","scope":83046,"src":"8763:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83039,"nodeType":"UserDefinedTypeName","pathNode":{"id":83038,"name":"StakerRewards","nameLocations":["8763:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83052,"src":"8763:13:169"},"referencedDeclaration":83052,"src":"8763:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83040,"nodeType":"ArrayTypeName","src":"8763:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83043,"mutability":"mutable","name":"totalAmount","nameLocation":"8809:11:169","nodeType":"VariableDeclaration","scope":83046,"src":"8801:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83042,"name":"uint256","nodeType":"ElementaryTypeName","src":"8801:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83045,"mutability":"mutable","name":"token","nameLocation":"8838:5:169","nodeType":"VariableDeclaration","scope":83046,"src":"8830:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83044,"name":"address","nodeType":"ElementaryTypeName","src":"8830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8729:23:169","scope":84099,"visibility":"public"},{"id":83052,"nodeType":"StructDefinition","src":"8911:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83047,"nodeType":"StructuredDocumentation","src":"8856:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83049,"mutability":"mutable","name":"vault","nameLocation":"8950:5:169","nodeType":"VariableDeclaration","scope":83052,"src":"8942:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83048,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83051,"mutability":"mutable","name":"amount","nameLocation":"8973:6:169","nodeType":"VariableDeclaration","scope":83052,"src":"8965:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83050,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8918:13:169","scope":84099,"visibility":"public"},{"id":83060,"nodeType":"EnumDefinition","src":"9061:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83053,"nodeType":"StructuredDocumentation","src":"8992:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83054,"nodeType":"StructuredDocumentation","src":"9086:260:169","text":" @dev The code commitment is in an unknown state (`CodeState.Unknown = 0 as uint8`).\n This is the default state for all code commitments,\n and it means that the code commitment has not been processed yet."},"id":83055,"name":"Unknown","nameLocation":"9355:7:169","nodeType":"EnumValue","src":"9355:7:169"},{"documentation":{"id":83056,"nodeType":"StructuredDocumentation","src":"9372:465:169","text":" @dev The code commitment has requested validation by user (`CodeState.ValidationRequested = 1 as uint8`).\n Users calls `IRouter(router).requestCodeValidation(bytes32 _codeId)` to request code validation and\n attaches sidecar to this transaction (the transaction is encoded in EIP-7594 format),\n then validators can validate the code commitment and set `CodeState.Validated` in case of success."},"id":83057,"name":"ValidationRequested","nameLocation":"9846:19:169","nodeType":"EnumValue","src":"9846:19:169"},{"documentation":{"id":83058,"nodeType":"StructuredDocumentation","src":"9875:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83059,"name":"Validated","nameLocation":"10006:9:169","nodeType":"EnumValue","src":"10006:9:169"}],"name":"CodeState","nameLocation":"9066:9:169"},{"id":83066,"nodeType":"StructDefinition","src":"10101:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83061,"nodeType":"StructuredDocumentation","src":"10027:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83063,"mutability":"mutable","name":"hash","nameLocation":"10145:4:169","nodeType":"VariableDeclaration","scope":83066,"src":"10137:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10137:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83065,"mutability":"mutable","name":"timestamp","nameLocation":"10166:9:169","nodeType":"VariableDeclaration","scope":83066,"src":"10159:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83064,"name":"uint48","nodeType":"ElementaryTypeName","src":"10159:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10108:18:169","scope":84099,"visibility":"public"},{"id":83072,"nodeType":"StructDefinition","src":"10249:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83067,"nodeType":"StructuredDocumentation","src":"10188:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83069,"mutability":"mutable","name":"threshold","nameLocation":"10293:9:169","nodeType":"VariableDeclaration","scope":83072,"src":"10286:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83068,"name":"uint64","nodeType":"ElementaryTypeName","src":"10286:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83071,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10320:14:169","nodeType":"VariableDeclaration","scope":83072,"src":"10312:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83070,"name":"uint128","nodeType":"ElementaryTypeName","src":"10312:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10256:19:169","scope":84099,"visibility":"public"},{"id":83080,"nodeType":"StructDefinition","src":"10419:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83073,"nodeType":"StructuredDocumentation","src":"10347:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83075,"mutability":"mutable","name":"hash","nameLocation":"10461:4:169","nodeType":"VariableDeclaration","scope":83080,"src":"10453:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10453:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83077,"mutability":"mutable","name":"number","nameLocation":"10482:6:169","nodeType":"VariableDeclaration","scope":83080,"src":"10475:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83076,"name":"uint32","nodeType":"ElementaryTypeName","src":"10475:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83079,"mutability":"mutable","name":"timestamp","nameLocation":"10505:9:169","nodeType":"VariableDeclaration","scope":83080,"src":"10498:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83078,"name":"uint48","nodeType":"ElementaryTypeName","src":"10498:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10426:16:169","scope":84099,"visibility":"public"},{"id":83101,"nodeType":"StructDefinition","src":"10575:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83081,"nodeType":"StructuredDocumentation","src":"10527:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":83084,"mutability":"mutable","name":"id","nameLocation":"10700:2:169","nodeType":"VariableDeclaration","scope":83101,"src":"10692:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10692:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83087,"mutability":"mutable","name":"destination","nameLocation":"10896:11:169","nodeType":"VariableDeclaration","scope":83101,"src":"10888:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83086,"name":"address","nodeType":"ElementaryTypeName","src":"10888:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83090,"mutability":"mutable","name":"payload","nameLocation":"10991:7:169","nodeType":"VariableDeclaration","scope":83101,"src":"10985:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83089,"name":"bytes","nodeType":"ElementaryTypeName","src":"10985:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83093,"mutability":"mutable","name":"value","nameLocation":"11095:5:169","nodeType":"VariableDeclaration","scope":83101,"src":"11087:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83092,"name":"uint128","nodeType":"ElementaryTypeName","src":"11087:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83097,"mutability":"mutable","name":"replyDetails","nameLocation":"11343:12:169","nodeType":"VariableDeclaration","scope":83101,"src":"11330:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83096,"nodeType":"UserDefinedTypeName","pathNode":{"id":83095,"name":"ReplyDetails","nameLocations":["11330:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":83137,"src":"11330:12:169"},"referencedDeclaration":83137,"src":"11330:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83100,"mutability":"mutable","name":"call","nameLocation":"11656:4:169","nodeType":"VariableDeclaration","scope":83101,"src":"11651:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83099,"name":"bool","nodeType":"ElementaryTypeName","src":"11651:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10582:7:169","scope":84099,"visibility":"public"},{"id":83129,"nodeType":"StructDefinition","src":"11731:1298:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83102,"nodeType":"StructuredDocumentation","src":"11673:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83108,"mutability":"mutable","name":"codes","nameLocation":"12005:5:169","nodeType":"VariableDeclaration","scope":83129,"src":"11975:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83107,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11983:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11975:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83106,"nodeType":"UserDefinedTypeName","pathNode":{"id":83105,"name":"CodeState","nameLocations":["11994:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"11994:9:169"},"referencedDeclaration":83060,"src":"11994:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83113,"mutability":"mutable","name":"programs","nameLocation":"12223:8:169","nodeType":"VariableDeclaration","scope":83129,"src":"12195:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83112,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83110,"name":"address","nodeType":"ElementaryTypeName","src":"12203:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12195:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12214:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83116,"mutability":"mutable","name":"programsCount","nameLocation":"12340:13:169","nodeType":"VariableDeclaration","scope":83129,"src":"12332:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83115,"name":"uint256","nodeType":"ElementaryTypeName","src":"12332:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83119,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12468:19:169","nodeType":"VariableDeclaration","scope":83129,"src":"12460:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83118,"name":"uint256","nodeType":"ElementaryTypeName","src":"12460:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83122,"mutability":"mutable","name":"maxValidators","nameLocation":"12586:13:169","nodeType":"VariableDeclaration","scope":83129,"src":"12579:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83121,"name":"uint16","nodeType":"ElementaryTypeName","src":"12579:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83125,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12777:28:169","nodeType":"VariableDeclaration","scope":83129,"src":"12769:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83124,"name":"uint256","nodeType":"ElementaryTypeName","src":"12769:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83128,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12993:29:169","nodeType":"VariableDeclaration","scope":83129,"src":"12985:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83127,"name":"uint256","nodeType":"ElementaryTypeName","src":"12985:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11738:12:169","scope":84099,"visibility":"public"},{"id":83137,"nodeType":"StructDefinition","src":"13095:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83130,"nodeType":"StructuredDocumentation","src":"13035:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83133,"mutability":"mutable","name":"to","nameLocation":"13304:2:169","nodeType":"VariableDeclaration","scope":83137,"src":"13296:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13296:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83136,"mutability":"mutable","name":"code","nameLocation":"13648:4:169","nodeType":"VariableDeclaration","scope":83137,"src":"13641:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83135,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13641:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13102:12:169","scope":84099,"visibility":"public"},{"id":83167,"nodeType":"StructDefinition","src":"13936:1608:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83138,"nodeType":"StructuredDocumentation","src":"13665:266:169","text":" @dev Represents state transition of `Mirror`.\n Most important type in this, in Rust we use this type to mutate state of `Mirror` instances.\n (see `ethexe/common/src/gear.rs` for more details on how this type is used in Rust)."},"members":[{"constant":false,"id":83141,"mutability":"mutable","name":"actorId","nameLocation":"14163:7:169","nodeType":"VariableDeclaration","scope":83167,"src":"14155:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83140,"name":"address","nodeType":"ElementaryTypeName","src":"14155:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83144,"mutability":"mutable","name":"newStateHash","nameLocation":"14344:12:169","nodeType":"VariableDeclaration","scope":83167,"src":"14336:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14336:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83147,"mutability":"mutable","name":"exited","nameLocation":"14451:6:169","nodeType":"VariableDeclaration","scope":83167,"src":"14446:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83146,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83150,"mutability":"mutable","name":"inheritor","nameLocation":"14653:9:169","nodeType":"VariableDeclaration","scope":83167,"src":"14645:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83149,"name":"address","nodeType":"ElementaryTypeName","src":"14645:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83153,"mutability":"mutable","name":"valueToReceive","nameLocation":"15031:14:169","nodeType":"VariableDeclaration","scope":83167,"src":"15023:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83152,"name":"uint128","nodeType":"ElementaryTypeName","src":"15023:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83156,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15327:26:169","nodeType":"VariableDeclaration","scope":83167,"src":"15322:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83155,"name":"bool","nodeType":"ElementaryTypeName","src":"15322:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83161,"mutability":"mutable","name":"valueClaims","nameLocation":"15439:11:169","nodeType":"VariableDeclaration","scope":83167,"src":"15426:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":83159,"nodeType":"UserDefinedTypeName","pathNode":{"id":83158,"name":"ValueClaim","nameLocations":["15426:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"15426:10:169"},"referencedDeclaration":83207,"src":"15426:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":83160,"nodeType":"ArrayTypeName","src":"15426:12:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":83166,"mutability":"mutable","name":"messages","nameLocation":"15529:8:169","nodeType":"VariableDeclaration","scope":83167,"src":"15519:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83164,"nodeType":"UserDefinedTypeName","pathNode":{"id":83163,"name":"Message","nameLocations":["15519:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"15519:7:169"},"referencedDeclaration":83101,"src":"15519:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"id":83165,"nodeType":"ArrayTypeName","src":"15519:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"13943:15:169","scope":84099,"visibility":"public"},{"id":83175,"nodeType":"StructDefinition","src":"15604:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83168,"nodeType":"StructuredDocumentation","src":"15550:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83170,"mutability":"mutable","name":"era","nameLocation":"15639:3:169","nodeType":"VariableDeclaration","scope":83175,"src":"15631:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83169,"name":"uint256","nodeType":"ElementaryTypeName","src":"15631:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83172,"mutability":"mutable","name":"election","nameLocation":"15660:8:169","nodeType":"VariableDeclaration","scope":83175,"src":"15652:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83171,"name":"uint256","nodeType":"ElementaryTypeName","src":"15652:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83174,"mutability":"mutable","name":"validationDelay","nameLocation":"15686:15:169","nodeType":"VariableDeclaration","scope":83175,"src":"15678:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83173,"name":"uint256","nodeType":"ElementaryTypeName","src":"15678:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15611:9:169","scope":84099,"visibility":"public"},{"id":83187,"nodeType":"StructDefinition","src":"15778:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83176,"nodeType":"StructuredDocumentation","src":"15714:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83178,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15822:18:169","nodeType":"VariableDeclaration","scope":83187,"src":"15814:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83177,"name":"uint128","nodeType":"ElementaryTypeName","src":"15814:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83180,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15858:20:169","nodeType":"VariableDeclaration","scope":83187,"src":"15850:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83179,"name":"uint128","nodeType":"ElementaryTypeName","src":"15850:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83183,"mutability":"mutable","name":"validators0","nameLocation":"15899:11:169","nodeType":"VariableDeclaration","scope":83187,"src":"15888:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83182,"nodeType":"UserDefinedTypeName","pathNode":{"id":83181,"name":"Validators","nameLocations":["15888:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"15888:10:169"},"referencedDeclaration":82928,"src":"15888:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83186,"mutability":"mutable","name":"validators1","nameLocation":"15931:11:169","nodeType":"VariableDeclaration","scope":83187,"src":"15920:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83185,"nodeType":"UserDefinedTypeName","pathNode":{"id":83184,"name":"Validators","nameLocations":["15920:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"15920:10:169"},"referencedDeclaration":82928,"src":"15920:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15785:18:169","scope":84099,"visibility":"public"},{"id":83199,"nodeType":"StructDefinition","src":"16027:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83188,"nodeType":"StructuredDocumentation","src":"15955:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83190,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16075:18:169","nodeType":"VariableDeclaration","scope":83199,"src":"16067:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83189,"name":"uint128","nodeType":"ElementaryTypeName","src":"16067:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83192,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16111:20:169","nodeType":"VariableDeclaration","scope":83199,"src":"16103:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83191,"name":"uint128","nodeType":"ElementaryTypeName","src":"16103:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83195,"mutability":"mutable","name":"validators0","nameLocation":"16156:11:169","nodeType":"VariableDeclaration","scope":83199,"src":"16141:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83194,"nodeType":"UserDefinedTypeName","pathNode":{"id":83193,"name":"ValidatorsView","nameLocations":["16141:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"16141:14:169"},"referencedDeclaration":82940,"src":"16141:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83198,"mutability":"mutable","name":"validators1","nameLocation":"16192:11:169","nodeType":"VariableDeclaration","scope":83199,"src":"16177:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83197,"nodeType":"UserDefinedTypeName","pathNode":{"id":83196,"name":"ValidatorsView","nameLocations":["16177:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"16177:14:169"},"referencedDeclaration":82940,"src":"16177:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16034:22:169","scope":84099,"visibility":"public"},{"id":83207,"nodeType":"StructDefinition","src":"16272:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83200,"nodeType":"StructuredDocumentation","src":"16216:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83202,"mutability":"mutable","name":"messageId","nameLocation":"16308:9:169","nodeType":"VariableDeclaration","scope":83207,"src":"16300:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16300:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83204,"mutability":"mutable","name":"destination","nameLocation":"16335:11:169","nodeType":"VariableDeclaration","scope":83207,"src":"16327:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83203,"name":"address","nodeType":"ElementaryTypeName","src":"16327:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83206,"mutability":"mutable","name":"value","nameLocation":"16364:5:169","nodeType":"VariableDeclaration","scope":83207,"src":"16356:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83205,"name":"uint128","nodeType":"ElementaryTypeName","src":"16356:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16279:10:169","scope":84099,"visibility":"public"},{"id":83229,"nodeType":"StructDefinition","src":"16456:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83208,"nodeType":"StructuredDocumentation","src":"16382:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83210,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16532:13:169","nodeType":"VariableDeclaration","scope":83229,"src":"16524:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83209,"name":"address","nodeType":"ElementaryTypeName","src":"16524:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83212,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16563:16:169","nodeType":"VariableDeclaration","scope":83229,"src":"16555:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83211,"name":"address","nodeType":"ElementaryTypeName","src":"16555:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83214,"mutability":"mutable","name":"networkRegistry","nameLocation":"16597:15:169","nodeType":"VariableDeclaration","scope":83229,"src":"16589:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83213,"name":"address","nodeType":"ElementaryTypeName","src":"16589:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83216,"mutability":"mutable","name":"middlewareService","nameLocation":"16630:17:169","nodeType":"VariableDeclaration","scope":83229,"src":"16622:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83215,"name":"address","nodeType":"ElementaryTypeName","src":"16622:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83218,"mutability":"mutable","name":"networkOptIn","nameLocation":"16665:12:169","nodeType":"VariableDeclaration","scope":83229,"src":"16657:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83217,"name":"address","nodeType":"ElementaryTypeName","src":"16657:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83220,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16695:20:169","nodeType":"VariableDeclaration","scope":83229,"src":"16687:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83219,"name":"address","nodeType":"ElementaryTypeName","src":"16687:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83222,"mutability":"mutable","name":"operatorRewards","nameLocation":"16769:15:169","nodeType":"VariableDeclaration","scope":83229,"src":"16761:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83221,"name":"address","nodeType":"ElementaryTypeName","src":"16761:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83224,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"16802:18:169","nodeType":"VariableDeclaration","scope":83229,"src":"16794:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83223,"name":"address","nodeType":"ElementaryTypeName","src":"16794:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83226,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"16838:17:169","nodeType":"VariableDeclaration","scope":83229,"src":"16830:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83225,"name":"address","nodeType":"ElementaryTypeName","src":"16830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83228,"mutability":"mutable","name":"vetoResolver","nameLocation":"16873:12:169","nodeType":"VariableDeclaration","scope":83229,"src":"16865:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83227,"name":"address","nodeType":"ElementaryTypeName","src":"16865:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16463:18:169","scope":84099,"visibility":"public"},{"id":83233,"nodeType":"EnumDefinition","src":"16965:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83230,"nodeType":"StructuredDocumentation","src":"16898:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":83231,"name":"FROST","nameLocation":"16994:5:169","nodeType":"EnumValue","src":"16994:5:169"},{"id":83232,"name":"ECDSA","nameLocation":"17009:5:169","nodeType":"EnumValue","src":"17009:5:169"}],"name":"SignatureType","nameLocation":"16970:13:169"},{"id":83255,"nodeType":"FunctionDefinition","src":"17310:260:169","nodes":[],"body":{"id":83254,"nodeType":"Block","src":"17471:99:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83248,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83236,"src":"17515:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83249,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83238,"src":"17533:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83250,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83240,"src":"17540:21:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17498:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17502:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"17498:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17498:64:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83245,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17488:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17488:75:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83244,"id":83253,"nodeType":"Return","src":"17481:82:169"}]},"documentation":{"id":83234,"nodeType":"StructuredDocumentation","src":"17026:279:169","text":" @dev Computes the hash of `ChainCommitment`.\n @param _transitionsHash The hash of the transitions in the chain commitment.\n @param _head The head of the chain commitment.\n @param _lastAdvancedEthBlock The latest folded-in Ethereum block hash."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"17319:19:169","parameters":{"id":83241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83236,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17347:16:169","nodeType":"VariableDeclaration","scope":83255,"src":"17339:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17339:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83238,"mutability":"mutable","name":"_head","nameLocation":"17373:5:169","nodeType":"VariableDeclaration","scope":83255,"src":"17365:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17365:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83240,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17388:21:169","nodeType":"VariableDeclaration","scope":83255,"src":"17380:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17380:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17338:72:169"},"returnParameters":{"id":83244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83255,"src":"17458:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17458:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17457:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83272,"nodeType":"FunctionDefinition","src":"17739:336:169","nodes":[],"body":{"id":83271,"nodeType":"Block","src":"17827:248:169","nodes":[],"statements":[{"assignments":[83266],"declarations":[{"constant":false,"id":83266,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"17845:19:169","nodeType":"VariableDeclaration","scope":83271,"src":"17837:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17837:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83267,"nodeType":"VariableDeclarationStatement","src":"17837:27:169"},{"AST":{"nativeSrc":"17899:134:169","nodeType":"YulBlock","src":"17899:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17920:4:169","nodeType":"YulLiteral","src":"17920:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"17926:6:169","nodeType":"YulIdentifier","src":"17926:6:169"}],"functionName":{"name":"mstore","nativeSrc":"17913:6:169","nodeType":"YulIdentifier","src":"17913:6:169"},"nativeSrc":"17913:20:169","nodeType":"YulFunctionCall","src":"17913:20:169"},"nativeSrc":"17913:20:169","nodeType":"YulExpressionStatement","src":"17913:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17954:4:169","nodeType":"YulLiteral","src":"17954:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"17960:5:169","nodeType":"YulIdentifier","src":"17960:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"17946:7:169","nodeType":"YulIdentifier","src":"17946:7:169"},"nativeSrc":"17946:20:169","nodeType":"YulFunctionCall","src":"17946:20:169"},"nativeSrc":"17946:20:169","nodeType":"YulExpressionStatement","src":"17946:20:169"},{"nativeSrc":"17979:44:169","nodeType":"YulAssignment","src":"17979:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"18012:4:169","nodeType":"YulLiteral","src":"18012:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18018:4:169","nodeType":"YulLiteral","src":"18018:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18002:9:169","nodeType":"YulIdentifier","src":"18002:9:169"},"nativeSrc":"18002:21:169","nodeType":"YulFunctionCall","src":"18002:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"17979:19:169","nodeType":"YulIdentifier","src":"17979:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83266,"isOffset":false,"isSlot":false,"src":"17979:19:169","valueSize":1},{"declaration":83258,"isOffset":false,"isSlot":false,"src":"17926:6:169","valueSize":1},{"declaration":83260,"isOffset":false,"isSlot":false,"src":"17960:5:169","valueSize":1}],"flags":["memory-safe"],"id":83268,"nodeType":"InlineAssembly","src":"17874:159:169"},{"expression":{"id":83269,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83266,"src":"18049:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83264,"id":83270,"nodeType":"Return","src":"18042:26:169"}]},"documentation":{"id":83256,"nodeType":"StructuredDocumentation","src":"17576:158:169","text":" @dev Computes the hash of `CodeCommitment`.\n @param codeId The ID of the code.\n @param valid The validation status of the code."},"implemented":true,"kind":"function","modifiers":[],"name":"codeCommitmentHash","nameLocation":"17748:18:169","parameters":{"id":83261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83258,"mutability":"mutable","name":"codeId","nameLocation":"17775:6:169","nodeType":"VariableDeclaration","scope":83272,"src":"17767:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17767:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83260,"mutability":"mutable","name":"valid","nameLocation":"17788:5:169","nodeType":"VariableDeclaration","scope":83272,"src":"17783:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83259,"name":"bool","nodeType":"ElementaryTypeName","src":"17783:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17766:28:169"},"returnParameters":{"id":83264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83272,"src":"17818:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17818:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17817:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83294,"nodeType":"FunctionDefinition","src":"18352:273:169","nodes":[],"body":{"id":83293,"nodeType":"Block","src":"18520:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83287,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83275,"src":"18564:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83288,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"18586:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83289,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83279,"src":"18606:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18547:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18551:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18547:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18547:70:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83284,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18537:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18537:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83283,"id":83292,"nodeType":"Return","src":"18530:88:169"}]},"documentation":{"id":83273,"nodeType":"StructuredDocumentation","src":"18081:266:169","text":" @dev Computes the hash of `RewardsCommitment`.\n @param _operatorRewardsHash The hash of the operator rewards.\n @param _stakerRewardsHash The hash of the staker rewards.\n @param _timestamp The timestamp for the rewards commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"rewardsCommitmentHash","nameLocation":"18361:21:169","parameters":{"id":83280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83275,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18391:20:169","nodeType":"VariableDeclaration","scope":83294,"src":"18383:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18383:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83277,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18421:18:169","nodeType":"VariableDeclaration","scope":83294,"src":"18413:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18413:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83279,"mutability":"mutable","name":"_timestamp","nameLocation":"18448:10:169","nodeType":"VariableDeclaration","scope":83294,"src":"18441:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83278,"name":"uint48","nodeType":"ElementaryTypeName","src":"18441:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18382:77:169"},"returnParameters":{"id":83283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83294,"src":"18507:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18507:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18506:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83322,"nodeType":"FunctionDefinition","src":"18756:425:169","nodes":[],"body":{"id":83321,"nodeType":"Block","src":"18867:314:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83306,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"18941:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18952:22:169","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"18941:33:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":83308,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"18992:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19003:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"18992:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19023:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"18992:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83311,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19042:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19053:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"19042:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19073:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"19042:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83314,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19092:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19103:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"19092:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83316,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19131:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19142:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"19131:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83304,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18907:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18911:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18907:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18907:257:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83303,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18884:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18884:290:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83302,"id":83320,"nodeType":"Return","src":"18877:297:169"}]},"documentation":{"id":83295,"nodeType":"StructuredDocumentation","src":"18631:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18765:24:169","parameters":{"id":83299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83298,"mutability":"mutable","name":"commitment","nameLocation":"18823:10:169","nodeType":"VariableDeclaration","scope":83322,"src":"18790:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83297,"nodeType":"UserDefinedTypeName","pathNode":{"id":83296,"name":"Gear.ValidatorsCommitment","nameLocations":["18790:4:169","18795:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"18790:25:169"},"referencedDeclaration":82986,"src":"18790:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18789:45:169"},"returnParameters":{"id":83302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83322,"src":"18858:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18858:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18857:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83359,"nodeType":"FunctionDefinition","src":"19794:697:169","nodes":[],"body":{"id":83358,"nodeType":"Block","src":"20131:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83347,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83325,"src":"20205:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83348,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83327,"src":"20229:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83349,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83329,"src":"20257:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83350,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83331,"src":"20294:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83351,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83333,"src":"20319:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83352,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83335,"src":"20357:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83353,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83337,"src":"20395:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83354,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83339,"src":"20435:25:169","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20171:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20175:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20171:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20171:303:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20148:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83343,"id":83357,"nodeType":"Return","src":"20141:343:169"}]},"documentation":{"id":83323,"nodeType":"StructuredDocumentation","src":"19187:602:169","text":" @dev Computes the hash of `BatchCommitment`.\n @param _block The hash of the block.\n @param _timestamp The timestamp for the batch commitment.\n @param _prevCommittedBlock The hash of the previous committed block.\n @param _expiry The expiry time for the batch commitment.\n @param _chainCommitmentHash The hash of the chain commitment.\n @param _codeCommitmentsHash The hash of the code commitments.\n @param _rewardsCommitmentHash The hash of the rewards commitment.\n @param _validatorsCommitmentHash The hash of the validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"batchCommitmentHash","nameLocation":"19803:19:169","parameters":{"id":83340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83325,"mutability":"mutable","name":"_block","nameLocation":"19840:6:169","nodeType":"VariableDeclaration","scope":83359,"src":"19832:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19832:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83327,"mutability":"mutable","name":"_timestamp","nameLocation":"19863:10:169","nodeType":"VariableDeclaration","scope":83359,"src":"19856:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83326,"name":"uint48","nodeType":"ElementaryTypeName","src":"19856:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83329,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"19891:19:169","nodeType":"VariableDeclaration","scope":83359,"src":"19883:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19883:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83331,"mutability":"mutable","name":"_expiry","nameLocation":"19926:7:169","nodeType":"VariableDeclaration","scope":83359,"src":"19920:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83330,"name":"uint8","nodeType":"ElementaryTypeName","src":"19920:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83333,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"19951:20:169","nodeType":"VariableDeclaration","scope":83359,"src":"19943:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19943:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83335,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"19989:20:169","nodeType":"VariableDeclaration","scope":83359,"src":"19981:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19981:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83337,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20027:22:169","nodeType":"VariableDeclaration","scope":83359,"src":"20019:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20019:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83339,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20067:25:169","nodeType":"VariableDeclaration","scope":83359,"src":"20059:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20059:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19822:276:169"},"returnParameters":{"id":83343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83359,"src":"20122:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20122:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20121:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83391,"nodeType":"FunctionDefinition","src":"20622:407:169","nodes":[],"body":{"id":83390,"nodeType":"Block","src":"20699:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83371,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20773:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"20773:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83373,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20801:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20809:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"20801:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83375,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20838:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20846:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"20838:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83377,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20871:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20879:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"20871:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83379,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20902:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20910:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"20902:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20923:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"20902:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83382,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20943:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20951:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"20943:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20964:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"20943:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83385,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20986:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20994:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"20986:12:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20739:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20743:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20739:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20739:273:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83368,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20716:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83367,"id":83389,"nodeType":"Return","src":"20709:313:169"}]},"documentation":{"id":83360,"nodeType":"StructuredDocumentation","src":"20497:120:169","text":" @dev Computes the hash of `Message`.\n @param message The message for which to compute the hash."},"implemented":true,"kind":"function","modifiers":[],"name":"messageHash","nameLocation":"20631:11:169","parameters":{"id":83364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83363,"mutability":"mutable","name":"message","nameLocation":"20658:7:169","nodeType":"VariableDeclaration","scope":83391,"src":"20643:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83362,"nodeType":"UserDefinedTypeName","pathNode":{"id":83361,"name":"Message","nameLocations":["20643:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"20643:7:169"},"referencedDeclaration":83101,"src":"20643:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20642:24:169"},"returnParameters":{"id":83367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83391,"src":"20690:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20690:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20689:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83413,"nodeType":"FunctionDefinition","src":"21236:199:169","nodes":[],"body":{"id":83412,"nodeType":"Block","src":"21350:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83406,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83394,"src":"21394:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83407,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83396,"src":"21406:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83408,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83398,"src":"21420:6:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":83404,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21377:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21381:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21377:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21377:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83403,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21367:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21367:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83402,"id":83411,"nodeType":"Return","src":"21360:68:169"}]},"documentation":{"id":83392,"nodeType":"StructuredDocumentation","src":"21035:196:169","text":" @dev Computes the hash of `ValueClaim`.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimHash","nameLocation":"21245:14:169","parameters":{"id":83399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83394,"mutability":"mutable","name":"_messageId","nameLocation":"21268:10:169","nodeType":"VariableDeclaration","scope":83413,"src":"21260:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21260:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83396,"mutability":"mutable","name":"_destination","nameLocation":"21288:12:169","nodeType":"VariableDeclaration","scope":83413,"src":"21280:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83395,"name":"address","nodeType":"ElementaryTypeName","src":"21280:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83398,"mutability":"mutable","name":"_value","nameLocation":"21310:6:169","nodeType":"VariableDeclaration","scope":83413,"src":"21302:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83397,"name":"uint128","nodeType":"ElementaryTypeName","src":"21302:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21259:58:169"},"returnParameters":{"id":83402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83413,"src":"21341:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21341:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21340:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83450,"nodeType":"FunctionDefinition","src":"21939:646:169","nodes":[],"body":{"id":83449,"nodeType":"Block","src":"22249:336:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83438,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83416,"src":"22323:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83439,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83418,"src":"22346:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83440,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83420,"src":"22376:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83441,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83422,"src":"22400:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83442,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"22427:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83443,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83426,"src":"22459:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83444,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83428,"src":"22503:15:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83445,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83430,"src":"22536:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22289:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22293:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"22289:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22289:279:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83435,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22266:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22266:312:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83434,"id":83448,"nodeType":"Return","src":"22259:319:169"}]},"documentation":{"id":83414,"nodeType":"StructuredDocumentation","src":"21441:493:169","text":" @dev Computes the hash of `StateTransition`.\n @param actor The actor address.\n @param newStateHash The hash of the new state.\n @param exited The exit status.\n @param inheritor The inheritor address.\n @param valueToReceive The value to receive.\n @param valueToReceiveNegativeSign The sign of the value to receive.\n @param valueClaimsHash The hash of the value claims.\n @param messagesHashesHash The hash of the messages hashes."},"implemented":true,"kind":"function","modifiers":[],"name":"stateTransitionHash","nameLocation":"21948:19:169","parameters":{"id":83431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83416,"mutability":"mutable","name":"actor","nameLocation":"21985:5:169","nodeType":"VariableDeclaration","scope":83450,"src":"21977:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83415,"name":"address","nodeType":"ElementaryTypeName","src":"21977:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83418,"mutability":"mutable","name":"newStateHash","nameLocation":"22008:12:169","nodeType":"VariableDeclaration","scope":83450,"src":"22000:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22000:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83420,"mutability":"mutable","name":"exited","nameLocation":"22035:6:169","nodeType":"VariableDeclaration","scope":83450,"src":"22030:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83419,"name":"bool","nodeType":"ElementaryTypeName","src":"22030:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83422,"mutability":"mutable","name":"inheritor","nameLocation":"22059:9:169","nodeType":"VariableDeclaration","scope":83450,"src":"22051:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83421,"name":"address","nodeType":"ElementaryTypeName","src":"22051:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83424,"mutability":"mutable","name":"valueToReceive","nameLocation":"22086:14:169","nodeType":"VariableDeclaration","scope":83450,"src":"22078:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83423,"name":"uint128","nodeType":"ElementaryTypeName","src":"22078:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83426,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22115:26:169","nodeType":"VariableDeclaration","scope":83450,"src":"22110:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83425,"name":"bool","nodeType":"ElementaryTypeName","src":"22110:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83428,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22159:15:169","nodeType":"VariableDeclaration","scope":83450,"src":"22151:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22151:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83430,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22192:18:169","nodeType":"VariableDeclaration","scope":83450,"src":"22184:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22184:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21967:249:169"},"returnParameters":{"id":83434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83450,"src":"22240:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22240:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22239:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83515,"nodeType":"FunctionDefinition","src":"22859:532:169","nodes":[],"body":{"id":83514,"nodeType":"Block","src":"22958:433:169","nodes":[],"statements":[{"assignments":[83461],"declarations":[{"constant":false,"id":83461,"mutability":"mutable","name":"start","nameLocation":"22976:5:169","nodeType":"VariableDeclaration","scope":83514,"src":"22968:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83460,"name":"uint256","nodeType":"ElementaryTypeName","src":"22968:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83466,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83462,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22984:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22990:6:169","memberName":"number","nodeType":"MemberAccess","src":"22984:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22999:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22984:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22968:32:169"},{"assignments":[83468],"declarations":[{"constant":false,"id":83468,"mutability":"mutable","name":"end","nameLocation":"23018:3:169","nodeType":"VariableDeclaration","scope":83514,"src":"23010:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83467,"name":"uint256","nodeType":"ElementaryTypeName","src":"23010:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83479,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83469,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"23024:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83470,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23034:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23040:6:169","memberName":"number","nodeType":"MemberAccess","src":"23034:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23024:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83474,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23053:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23059:6:169","memberName":"number","nodeType":"MemberAccess","src":"23053:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83476,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"23068:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23053:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23024:50:169","trueExpression":{"hexValue":"30","id":83473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23049:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23010:64:169"},{"body":{"id":83510,"nodeType":"Block","src":"23119:243:169","statements":[{"assignments":[83488],"declarations":[{"constant":false,"id":83488,"mutability":"mutable","name":"ret","nameLocation":"23141:3:169","nodeType":"VariableDeclaration","scope":83510,"src":"23133:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23133:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83492,"initialValue":{"arguments":[{"id":83490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23157:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83489,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23147:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23147:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23133:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83493,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83488,"src":"23177:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83494,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83453,"src":"23184:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23177:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83499,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83488,"src":"23244:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23251:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23244:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83504,"nodeType":"IfStatement","src":"23240:52:169","trueBody":{"id":83503,"nodeType":"Block","src":"23254:38:169","statements":[{"id":83502,"nodeType":"Break","src":"23272:5:169"}]}},"id":83505,"nodeType":"IfStatement","src":"23173:119:169","trueBody":{"id":83498,"nodeType":"Block","src":"23190:44:169","statements":[{"expression":{"hexValue":"74727565","id":83496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23215:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83459,"id":83497,"nodeType":"Return","src":"23208:11:169"}]}},{"id":83509,"nodeType":"UncheckedBlock","src":"23306:46:169","statements":[{"expression":{"id":83507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"23334:3:169","subExpression":{"id":83506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23334:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83508,"nodeType":"ExpressionStatement","src":"23334:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23108:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83485,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83468,"src":"23113:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23108:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83511,"initializationExpression":{"assignments":[83481],"declarations":[{"constant":false,"id":83481,"mutability":"mutable","name":"i","nameLocation":"23097:1:169","nodeType":"VariableDeclaration","scope":83511,"src":"23089:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83480,"name":"uint256","nodeType":"ElementaryTypeName","src":"23089:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83483,"initialValue":{"id":83482,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83461,"src":"23101:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23089:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23084:278:169"},{"expression":{"hexValue":"66616c7365","id":83512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23379:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83459,"id":83513,"nodeType":"Return","src":"23372:12:169"}]},"documentation":{"id":83451,"nodeType":"StructuredDocumentation","src":"22591:263:169","text":" @dev Checks if block is predecessor of the current block.\n @param hash The hash of the block to check.\n @param expiry The expiry time for the block.\n @return isPredecessor `true` if the block is predecessor, `false` otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"blockIsPredecessor","nameLocation":"22868:18:169","parameters":{"id":83456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83453,"mutability":"mutable","name":"hash","nameLocation":"22895:4:169","nodeType":"VariableDeclaration","scope":83515,"src":"22887:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22887:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83455,"mutability":"mutable","name":"expiry","nameLocation":"22907:6:169","nodeType":"VariableDeclaration","scope":83515,"src":"22901:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83454,"name":"uint8","nodeType":"ElementaryTypeName","src":"22901:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"22886:28:169"},"returnParameters":{"id":83459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83458,"mutability":"mutable","name":"isPredecessor","nameLocation":"22943:13:169","nodeType":"VariableDeclaration","scope":83515,"src":"22938:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83457,"name":"bool","nodeType":"ElementaryTypeName","src":"22938:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22937:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83528,"nodeType":"FunctionDefinition","src":"23536:222:169","nodes":[],"body":{"id":83527,"nodeType":"Block","src":"23645:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83523,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82868,"src":"23694:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83524,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82880,"src":"23733:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83522,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83072,"src":"23662:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83072_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23683:9:169","23717:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"23662:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83521,"id":83526,"nodeType":"Return","src":"23655:96:169"}]},"documentation":{"id":83516,"nodeType":"StructuredDocumentation","src":"23397:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"23545:26:169","parameters":{"id":83517,"nodeType":"ParameterList","parameters":[],"src":"23571:2:169"},"returnParameters":{"id":83521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83520,"mutability":"mutable","name":"computationSettings","nameLocation":"23624:19:169","nodeType":"VariableDeclaration","scope":83528,"src":"23597:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83519,"nodeType":"UserDefinedTypeName","pathNode":{"id":83518,"name":"ComputationSettings","nameLocations":["23597:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83072,"src":"23597:19:169"},"referencedDeclaration":83072,"src":"23597:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23596:48:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83551,"nodeType":"FunctionDefinition","src":"23884:229:169","nodes":[],"body":{"id":83550,"nodeType":"Block","src":"23971:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24032:1:169","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":83537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24024:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24024:7:169","typeDescriptions":{}}},"id":83539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24024:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24062:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24068:6:169","memberName":"number","nodeType":"MemberAccess","src":"24062:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83540,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"24044:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"24044:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24044:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83545,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"24088:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24093:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"24088:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24088:16:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":83535,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83080,"src":"24000:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83080_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24018:4:169","24036:6:169","24077:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24000:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83534,"id":83549,"nodeType":"Return","src":"23981:125:169"}]},"documentation":{"id":83529,"nodeType":"StructuredDocumentation","src":"23764:115:169","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"23893:10:169","parameters":{"id":83530,"nodeType":"ParameterList","parameters":[],"src":"23903:2:169"},"returnParameters":{"id":83534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83533,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"23953:16:169","nodeType":"VariableDeclaration","scope":83551,"src":"23929:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83532,"nodeType":"UserDefinedTypeName","pathNode":{"id":83531,"name":"GenesisBlockInfo","nameLocations":["23929:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":83080,"src":"23929:16:169"},"referencedDeclaration":83080,"src":"23929:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"23928:42:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83801,"nodeType":"FunctionDefinition","src":"24604:3813:169","nodes":[],"body":{"id":83800,"nodeType":"Block","src":"24867:3550:169","nodes":[],"statements":[{"assignments":[83573],"declarations":[{"constant":false,"id":83573,"mutability":"mutable","name":"eraStarted","nameLocation":"24939:10:169","nodeType":"VariableDeclaration","scope":83800,"src":"24931:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83572,"name":"uint256","nodeType":"ElementaryTypeName","src":"24931:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83579,"initialValue":{"arguments":[{"id":83575,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"24965:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83576,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24973:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24979:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"24973:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83574,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84034,"src":"24952:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24952:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24931:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83580,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25003:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83581,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25008:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25003:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83583,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25022:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25028:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25022:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83585,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25040:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83586,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25053:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25060:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"25053:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25070:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83174,"src":"25053:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25040:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25022:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25003:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83633,"nodeType":"Block","src":"25446:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83616,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25468:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83617,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25474:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25480:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25474:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25468:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83620,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82889,"src":"25491:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25491:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25460:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25460:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83623,"nodeType":"ExpressionStatement","src":"25460:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83624,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25530:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83625,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25535:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25530:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83632,"nodeType":"IfStatement","src":"25526:69:169","trueBody":{"id":83631,"nodeType":"Block","src":"25547:48:169","statements":[{"expression":{"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83627,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25565:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83628,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25570:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25565:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83630,"nodeType":"ExpressionStatement","src":"25565:15:169"}]}}]},"id":83634,"nodeType":"IfStatement","src":"24999:676:169","trueBody":{"id":83614,"nodeType":"Block","src":"25087:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83593,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25109:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83594,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25115:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25122:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25115:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25135:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"25115:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25109:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83598,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82883,"src":"25146:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25101:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25101:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83601,"nodeType":"ExpressionStatement","src":"25101:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83603,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25194:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83604,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25199:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25206:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"25199:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25216:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"25199:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25194:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83608,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25223:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25194:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83610,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82886,"src":"25235:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25235:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25186:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25186:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83613,"nodeType":"ExpressionStatement","src":"25186:81:169"}]}},{"assignments":[83637],"declarations":[{"constant":false,"id":83637,"mutability":"mutable","name":"validators","nameLocation":"25756:10:169","nodeType":"VariableDeclaration","scope":83800,"src":"25737:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83636,"nodeType":"UserDefinedTypeName","pathNode":{"id":83635,"name":"Validators","nameLocations":["25737:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"25737:10:169"},"referencedDeclaration":82928,"src":"25737:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83642,"initialValue":{"arguments":[{"id":83639,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25782:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83640,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25790:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83638,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83873,"src":"25769:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25769:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25737:56:169"},{"assignments":[83644],"declarations":[{"constant":false,"id":83644,"mutability":"mutable","name":"_messageHash","nameLocation":"25811:12:169","nodeType":"VariableDeclaration","scope":83800,"src":"25803:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25803:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83652,"initialValue":{"arguments":[{"id":83650,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83559,"src":"25872:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83647,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"25834:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84099","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84099","typeString":"library Gear"}],"id":83646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25826:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83645,"name":"address","nodeType":"ElementaryTypeName","src":"25826:7:169","typeDescriptions":{}}},"id":83648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25826:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25840:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"25826:45:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":83651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25826:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25803:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"id":83656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83653,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"25897:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83654,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"25915:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83233_$","typeString":"type(enum Gear.SignatureType)"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25929:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83231,"src":"25915:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"src":"25897:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"id":83709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83706,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"27093:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83707,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"27111:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83233_$","typeString":"type(enum Gear.SignatureType)"}},"id":83708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27125:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83232,"src":"27111:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"src":"27093:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83796,"nodeType":"IfStatement","src":"27089:1299:169","trueBody":{"id":83795,"nodeType":"Block","src":"27132:1256:169","statements":[{"assignments":[83711],"declarations":[{"constant":false,"id":83711,"mutability":"mutable","name":"threshold","nameLocation":"27154:9:169","nodeType":"VariableDeclaration","scope":83795,"src":"27146:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83710,"name":"uint256","nodeType":"ElementaryTypeName","src":"27146:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83723,"initialValue":{"arguments":[{"expression":{"expression":{"id":83713,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27203:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27214:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"27203:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27219:6:169","memberName":"length","nodeType":"MemberAccess","src":"27203:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83716,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"27243:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27250:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"27243:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27269:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"27243:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83719,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"27305:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27312:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"27305:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27331:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"27305:46:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83712,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83986,"src":"27166:19:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":83722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27146:219:169"},{"assignments":[83725],"declarations":[{"constant":false,"id":83725,"mutability":"mutable","name":"validSignatures","nameLocation":"27388:15:169","nodeType":"VariableDeclaration","scope":83795,"src":"27380:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83724,"name":"uint256","nodeType":"ElementaryTypeName","src":"27380:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83727,"initialValue":{"hexValue":"30","id":83726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27406:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27380:27:169"},{"body":{"id":83791,"nodeType":"Block","src":"27471:880:169","statements":[{"assignments":[83740],"declarations":[{"constant":false,"id":83740,"mutability":"mutable","name":"signature","nameLocation":"27504:9:169","nodeType":"VariableDeclaration","scope":83791,"src":"27489:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":83739,"name":"bytes","nodeType":"ElementaryTypeName","src":"27489:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83744,"initialValue":{"baseExpression":{"id":83741,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"27516:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83743,"indexExpression":{"id":83742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27528:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27516:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27489:41:169"},{"assignments":[83746],"declarations":[{"constant":false,"id":83746,"mutability":"mutable","name":"validator","nameLocation":"27557:9:169","nodeType":"VariableDeclaration","scope":83791,"src":"27549:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83745,"name":"address","nodeType":"ElementaryTypeName","src":"27549:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83751,"initialValue":{"arguments":[{"id":83749,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83740,"src":"27590:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":83747,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27569:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27582:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"27569:20:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":83750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27569:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27549:51:169"},{"condition":{"baseExpression":{"expression":{"id":83752,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27623:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27634:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"27623:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83755,"indexExpression":{"id":83754,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83746,"src":"27638:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27623:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83790,"nodeType":"IfStatement","src":"27619:718:169","trueBody":{"id":83789,"nodeType":"Block","src":"27650:687:169","statements":[{"assignments":[83758],"declarations":[{"constant":false,"id":83758,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"27875:30:169","nodeType":"VariableDeclaration","scope":83789,"src":"27867:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27867:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev SECURITY:\n We use transient storage to prevent multiple signatures from the same validator.","id":83763,"initialValue":{"arguments":[{"id":83761,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83746,"src":"27945:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":83759,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83557,"src":"27908:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27931:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"27908:36:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,address) pure returns (bytes32)"}},"id":83762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27908:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27867:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83764,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"27982:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28013:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27982:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27982:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28025:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"27982:48:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$50513_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":83768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27982:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83779,"nodeType":"Block","src":"28097:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":83776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28173:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83771,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"28123:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28154:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28123:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28123:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28166:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"28123:49:169","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$50513_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":83777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28123:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83778,"nodeType":"ExpressionStatement","src":"28123:55:169"}]},"id":83780,"nodeType":"IfStatement","src":"27978:223:169","trueBody":{"id":83770,"nodeType":"Block","src":"28034:57:169","statements":[{"id":83769,"nodeType":"Continue","src":"28060:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28227:17:169","subExpression":{"id":83781,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83725,"src":"28229:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83783,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83711,"src":"28248:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28227:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83788,"nodeType":"IfStatement","src":"28223:96:169","trueBody":{"id":83787,"nodeType":"Block","src":"28259:60:169","statements":[{"expression":{"hexValue":"74727565","id":83785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28292:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83571,"id":83786,"nodeType":"Return","src":"28285:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27442:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83733,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"27446:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27458:6:169","memberName":"length","nodeType":"MemberAccess","src":"27446:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27442:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83792,"initializationExpression":{"assignments":[83729],"declarations":[{"constant":false,"id":83729,"mutability":"mutable","name":"i","nameLocation":"27435:1:169","nodeType":"VariableDeclaration","scope":83792,"src":"27427:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83728,"name":"uint256","nodeType":"ElementaryTypeName","src":"27427:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83731,"initialValue":{"hexValue":"30","id":83730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27439:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27427:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27466:3:169","subExpression":{"id":83736,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27466:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83738,"nodeType":"ExpressionStatement","src":"27466:3:169"},"nodeType":"ForStatement","src":"27422:929:169"},{"expression":{"hexValue":"66616c7365","id":83793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28372:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83571,"id":83794,"nodeType":"Return","src":"28365:12:169"}]}},"id":83797,"nodeType":"IfStatement","src":"25893:2495:169","trueBody":{"id":83705,"nodeType":"Block","src":"25936:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83658,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"25958:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25970:6:169","memberName":"length","nodeType":"MemberAccess","src":"25958:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25980:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25958:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83662,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82892,"src":"25983:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25983:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25950:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25950:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83665,"nodeType":"ExpressionStatement","src":"25950:62:169"},{"assignments":[83667],"declarations":[{"constant":false,"id":83667,"mutability":"mutable","name":"_signature","nameLocation":"26040:10:169","nodeType":"VariableDeclaration","scope":83705,"src":"26027:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83666,"name":"bytes","nodeType":"ElementaryTypeName","src":"26027:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83671,"initialValue":{"baseExpression":{"id":83668,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"26053:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83670,"indexExpression":{"hexValue":"30","id":83669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26065:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26053:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26027:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83673,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"26089:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":83674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26100:6:169","memberName":"length","nodeType":"MemberAccess","src":"26089:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":83675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26110:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26089:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83677,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82895,"src":"26114:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26114:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83680,"nodeType":"ExpressionStatement","src":"26081:63:169"},{"assignments":[83682],"declarations":[{"constant":false,"id":83682,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"26167:21:169","nodeType":"VariableDeclaration","scope":83705,"src":"26159:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83681,"name":"uint256","nodeType":"ElementaryTypeName","src":"26159:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83683,"nodeType":"VariableDeclarationStatement","src":"26159:29:169"},{"assignments":[83685],"declarations":[{"constant":false,"id":83685,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"26210:21:169","nodeType":"VariableDeclaration","scope":83705,"src":"26202:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83684,"name":"uint256","nodeType":"ElementaryTypeName","src":"26202:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83686,"nodeType":"VariableDeclarationStatement","src":"26202:29:169"},{"assignments":[83688],"declarations":[{"constant":false,"id":83688,"mutability":"mutable","name":"_signatureZ","nameLocation":"26253:11:169","nodeType":"VariableDeclaration","scope":83705,"src":"26245:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83687,"name":"uint256","nodeType":"ElementaryTypeName","src":"26245:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83689,"nodeType":"VariableDeclarationStatement","src":"26245:19:169"},{"AST":{"nativeSrc":"26304:215:169","nodeType":"YulBlock","src":"26304:215:169","statements":[{"nativeSrc":"26322:53:169","nodeType":"YulAssignment","src":"26322:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26357:10:169","nodeType":"YulIdentifier","src":"26357:10:169"},{"kind":"number","nativeSrc":"26369:4:169","nodeType":"YulLiteral","src":"26369:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26353:3:169","nodeType":"YulIdentifier","src":"26353:3:169"},"nativeSrc":"26353:21:169","nodeType":"YulFunctionCall","src":"26353:21:169"}],"functionName":{"name":"mload","nativeSrc":"26347:5:169","nodeType":"YulIdentifier","src":"26347:5:169"},"nativeSrc":"26347:28:169","nodeType":"YulFunctionCall","src":"26347:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"26322:21:169","nodeType":"YulIdentifier","src":"26322:21:169"}]},{"nativeSrc":"26392:53:169","nodeType":"YulAssignment","src":"26392:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26427:10:169","nodeType":"YulIdentifier","src":"26427:10:169"},{"kind":"number","nativeSrc":"26439:4:169","nodeType":"YulLiteral","src":"26439:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26423:3:169","nodeType":"YulIdentifier","src":"26423:3:169"},"nativeSrc":"26423:21:169","nodeType":"YulFunctionCall","src":"26423:21:169"}],"functionName":{"name":"mload","nativeSrc":"26417:5:169","nodeType":"YulIdentifier","src":"26417:5:169"},"nativeSrc":"26417:28:169","nodeType":"YulFunctionCall","src":"26417:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"26392:21:169","nodeType":"YulIdentifier","src":"26392:21:169"}]},{"nativeSrc":"26462:43:169","nodeType":"YulAssignment","src":"26462:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26487:10:169","nodeType":"YulIdentifier","src":"26487:10:169"},{"kind":"number","nativeSrc":"26499:4:169","nodeType":"YulLiteral","src":"26499:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26483:3:169","nodeType":"YulIdentifier","src":"26483:3:169"},"nativeSrc":"26483:21:169","nodeType":"YulFunctionCall","src":"26483:21:169"}],"functionName":{"name":"mload","nativeSrc":"26477:5:169","nodeType":"YulIdentifier","src":"26477:5:169"},"nativeSrc":"26477:28:169","nodeType":"YulFunctionCall","src":"26477:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"26462:11:169","nodeType":"YulIdentifier","src":"26462:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26357:10:169","valueSize":1},{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26427:10:169","valueSize":1},{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26487:10:169","valueSize":1},{"declaration":83682,"isOffset":false,"isSlot":false,"src":"26322:21:169","valueSize":1},{"declaration":83685,"isOffset":false,"isSlot":false,"src":"26392:21:169","valueSize":1},{"declaration":83688,"isOffset":false,"isSlot":false,"src":"26462:11:169","valueSize":1}],"flags":["memory-safe"],"id":83690,"nodeType":"InlineAssembly","src":"26279:240:169"},{"documentation":" @dev SECURITY: `FROST.isValidPublicKey(validators.aggregatedPublicKey.x, validators.aggregatedPublicKey.y)` is not called here,\n because it is already checked in `Router._resetValidators(...)`.","expression":{"arguments":[{"expression":{"expression":{"id":83693,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"26839:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26850:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"26839:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26870:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"26839:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"26889:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26900:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"26889:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26920:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"26889:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83699,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83682,"src":"26939:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83700,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83685,"src":"26978:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83701,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"27017:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83702,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27046:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83691,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"26800:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":83692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"26800:21:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,bytes32) view returns (bool)"}},"id":83703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26800:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83571,"id":83704,"nodeType":"Return","src":"26793:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":83798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28405:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83571,"id":83799,"nodeType":"Return","src":"28398:12:169"}]},"documentation":{"id":83552,"nodeType":"StructuredDocumentation","src":"24119:480:169","text":" @dev Validates signatures of the given data hash at the given timestamp.\n @param router The router storage.\n @param routerTransientStorage The router transient storage slot for this validation.\n @param _dataHash The hash of the data to validate signatures for.\n @param _signatureType The type of signatures to validate.\n @param _signatures The signatures to validate.\n @param ts The timestamp at which to validate signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"validateSignaturesAt","nameLocation":"24613:20:169","parameters":{"id":83568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83555,"mutability":"mutable","name":"router","nameLocation":"24667:6:169","nodeType":"VariableDeclaration","scope":83801,"src":"24643:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83554,"nodeType":"UserDefinedTypeName","pathNode":{"id":83553,"name":"IRouter.Storage","nameLocations":["24643:7:169","24651:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"24643:15:169"},"referencedDeclaration":74490,"src":"24643:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83557,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"24691:22:169","nodeType":"VariableDeclaration","scope":83801,"src":"24683:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83559,"mutability":"mutable","name":"_dataHash","nameLocation":"24731:9:169","nodeType":"VariableDeclaration","scope":83801,"src":"24723:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24723:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83562,"mutability":"mutable","name":"_signatureType","nameLocation":"24764:14:169","nodeType":"VariableDeclaration","scope":83801,"src":"24750:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"typeName":{"id":83561,"nodeType":"UserDefinedTypeName","pathNode":{"id":83560,"name":"SignatureType","nameLocations":["24750:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83233,"src":"24750:13:169"},"referencedDeclaration":83233,"src":"24750:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83565,"mutability":"mutable","name":"_signatures","nameLocation":"24805:11:169","nodeType":"VariableDeclaration","scope":83801,"src":"24788:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83563,"name":"bytes","nodeType":"ElementaryTypeName","src":"24788:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83564,"nodeType":"ArrayTypeName","src":"24788:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83567,"mutability":"mutable","name":"ts","nameLocation":"24834:2:169","nodeType":"VariableDeclaration","scope":83801,"src":"24826:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83566,"name":"uint256","nodeType":"ElementaryTypeName","src":"24826:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24633:209:169"},"returnParameters":{"id":83571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83801,"src":"24861:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83569,"name":"bool","nodeType":"ElementaryTypeName","src":"24861:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24860:6:169"},"scope":84099,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":83818,"nodeType":"FunctionDefinition","src":"28536:166:169","nodes":[],"body":{"id":83817,"nodeType":"Block","src":"28641:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83812,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"28671:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83813,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28679:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28685:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"28679:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83811,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83873,"src":"28658:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28658:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":83810,"id":83816,"nodeType":"Return","src":"28651:44:169"}]},"documentation":{"id":83802,"nodeType":"StructuredDocumentation","src":"28423:108:169","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"28545:20:169","parameters":{"id":83806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83805,"mutability":"mutable","name":"router","nameLocation":"28590:6:169","nodeType":"VariableDeclaration","scope":83818,"src":"28566:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83804,"nodeType":"UserDefinedTypeName","pathNode":{"id":83803,"name":"IRouter.Storage","nameLocations":["28566:7:169","28574:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28566:15:169"},"referencedDeclaration":74490,"src":"28566:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28565:32:169"},"returnParameters":{"id":83810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83818,"src":"28621:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83808,"nodeType":"UserDefinedTypeName","pathNode":{"id":83807,"name":"Validators","nameLocations":["28621:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"28621:10:169"},"referencedDeclaration":82928,"src":"28621:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28620:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83845,"nodeType":"FunctionDefinition","src":"28908:322:169","nodes":[],"body":{"id":83844,"nodeType":"Block","src":"29014:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83829,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29054:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83830,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29062:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29068:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"29062:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83828,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83940,"src":"29028:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29028:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83842,"nodeType":"Block","src":"29155:69:169","statements":[{"expression":{"expression":{"expression":{"id":83838,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29176:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29183:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29176:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29202:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"29176:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83827,"id":83841,"nodeType":"Return","src":"29169:44:169"}]},"id":83843,"nodeType":"IfStatement","src":"29024:200:169","trueBody":{"id":83837,"nodeType":"Block","src":"29080:69:169","statements":[{"expression":{"expression":{"expression":{"id":83833,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29101:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29108:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29101:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29127:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"29101:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83827,"id":83836,"nodeType":"Return","src":"29094:44:169"}]}}]},"documentation":{"id":83819,"nodeType":"StructuredDocumentation","src":"28708:195:169","text":" @dev Returns previous era validators, if there is no previous era,\n then returns free validators slot, which must be zeroed.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"previousEraValidators","nameLocation":"28917:21:169","parameters":{"id":83823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83822,"mutability":"mutable","name":"router","nameLocation":"28963:6:169","nodeType":"VariableDeclaration","scope":83845,"src":"28939:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83821,"nodeType":"UserDefinedTypeName","pathNode":{"id":83820,"name":"IRouter.Storage","nameLocations":["28939:7:169","28947:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28939:15:169"},"referencedDeclaration":74490,"src":"28939:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28938:32:169"},"returnParameters":{"id":83827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83845,"src":"28994:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83825,"nodeType":"UserDefinedTypeName","pathNode":{"id":83824,"name":"Validators","nameLocations":["28994:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"28994:10:169"},"referencedDeclaration":82928,"src":"28994:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28993:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83873,"nodeType":"FunctionDefinition","src":"29367:312:169","nodes":[],"body":{"id":83872,"nodeType":"Block","src":"29476:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29516:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83859,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83851,"src":"29524:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83857,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83940,"src":"29490:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29490:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83870,"nodeType":"Block","src":"29604:69:169","statements":[{"expression":{"expression":{"expression":{"id":83866,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29625:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29632:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29625:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29651:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"29625:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83856,"id":83869,"nodeType":"Return","src":"29618:44:169"}]},"id":83871,"nodeType":"IfStatement","src":"29486:187:169","trueBody":{"id":83865,"nodeType":"Block","src":"29529:69:169","statements":[{"expression":{"expression":{"expression":{"id":83861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29550:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29557:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29550:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29576:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"29550:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83856,"id":83864,"nodeType":"Return","src":"29543:44:169"}]}}]},"documentation":{"id":83846,"nodeType":"StructuredDocumentation","src":"29236:126:169","text":" @dev Returns validators at the given timestamp.\n @param ts Timestamp for which to get the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsAt","nameLocation":"29376:12:169","parameters":{"id":83852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83849,"mutability":"mutable","name":"router","nameLocation":"29413:6:169","nodeType":"VariableDeclaration","scope":83873,"src":"29389:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83848,"nodeType":"UserDefinedTypeName","pathNode":{"id":83847,"name":"IRouter.Storage","nameLocations":["29389:7:169","29397:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"29389:15:169"},"referencedDeclaration":74490,"src":"29389:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83851,"mutability":"mutable","name":"ts","nameLocation":"29429:2:169","nodeType":"VariableDeclaration","scope":83873,"src":"29421:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83850,"name":"uint256","nodeType":"ElementaryTypeName","src":"29421:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29388:44:169"},"returnParameters":{"id":83856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83873,"src":"29456:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83854,"nodeType":"UserDefinedTypeName","pathNode":{"id":83853,"name":"Validators","nameLocations":["29456:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"29456:10:169"},"referencedDeclaration":82928,"src":"29456:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29455:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83940,"nodeType":"FunctionDefinition","src":"30086:863:169","nodes":[],"body":{"id":83939,"nodeType":"Block","src":"30230:719:169","nodes":[],"statements":[{"assignments":[83885],"declarations":[{"constant":false,"id":83885,"mutability":"mutable","name":"ts0","nameLocation":"30248:3:169","nodeType":"VariableDeclaration","scope":83939,"src":"30240:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83884,"name":"uint256","nodeType":"ElementaryTypeName","src":"30240:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83890,"initialValue":{"expression":{"expression":{"expression":{"id":83886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83877,"src":"30254:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30261:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"30254:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30280:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"30254:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"id":83889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30292:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"30254:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30240:68:169"},{"assignments":[83892],"declarations":[{"constant":false,"id":83892,"mutability":"mutable","name":"ts1","nameLocation":"30326:3:169","nodeType":"VariableDeclaration","scope":83939,"src":"30318:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83891,"name":"uint256","nodeType":"ElementaryTypeName","src":"30318:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83897,"initialValue":{"expression":{"expression":{"expression":{"id":83893,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83877,"src":"30332:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30339:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"30332:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30358:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"30332:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"id":83896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30370:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"30332:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30318:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83899,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30460:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":83900,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30467:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30460:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83902,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82898,"src":"30472:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30472:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30452:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30452:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83905,"nodeType":"ExpressionStatement","src":"30452:50:169"},{"assignments":[83907],"declarations":[{"constant":false,"id":83907,"mutability":"mutable","name":"ts1Greater","nameLocation":"30518:10:169","nodeType":"VariableDeclaration","scope":83939,"src":"30513:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83906,"name":"bool","nodeType":"ElementaryTypeName","src":"30513:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83911,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83908,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30531:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83909,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30537:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30531:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30513:27:169"},{"assignments":[83913],"declarations":[{"constant":false,"id":83913,"mutability":"mutable","name":"tsGe0","nameLocation":"30555:5:169","nodeType":"VariableDeclaration","scope":83939,"src":"30550:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83912,"name":"bool","nodeType":"ElementaryTypeName","src":"30550:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83917,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83914,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30563:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83915,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"30570:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30563:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30550:22:169"},{"assignments":[83919],"declarations":[{"constant":false,"id":83919,"mutability":"mutable","name":"tsGe1","nameLocation":"30587:5:169","nodeType":"VariableDeclaration","scope":83939,"src":"30582:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83918,"name":"bool","nodeType":"ElementaryTypeName","src":"30582:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83923,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83920,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30595:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83921,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"30602:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30595:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30582:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83925,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83913,"src":"30696:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":83926,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83919,"src":"30705:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30696:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83928,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82901,"src":"30712:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30712:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30688:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30688:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83931,"nodeType":"ExpressionStatement","src":"30688:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83932,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83907,"src":"30912:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83933,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83913,"src":"30927:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83934,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83919,"src":"30936:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30927:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30926:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30912:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83883,"id":83938,"nodeType":"Return","src":"30905:37:169"}]},"documentation":{"id":83874,"nodeType":"StructuredDocumentation","src":"29685:396:169","text":" @dev Returns `true` if validators at `ts` are stored in `router.validationSettings.validators1`.\n `false` means that current era validators are stored in `router.validationSettings.validators0`.\n @param ts Timestamp for which to check the validators slot.\n @return isSlot1 Whether validators at `ts` are stored in `router.validationSettings.validators1`."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsStoredInSlot1At","nameLocation":"30095:25:169","parameters":{"id":83880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83877,"mutability":"mutable","name":"router","nameLocation":"30145:6:169","nodeType":"VariableDeclaration","scope":83940,"src":"30121:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83876,"nodeType":"UserDefinedTypeName","pathNode":{"id":83875,"name":"IRouter.Storage","nameLocations":["30121:7:169","30129:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"30121:15:169"},"referencedDeclaration":74490,"src":"30121:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83879,"mutability":"mutable","name":"ts","nameLocation":"30161:2:169","nodeType":"VariableDeclaration","scope":83940,"src":"30153:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83878,"name":"uint256","nodeType":"ElementaryTypeName","src":"30153:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30120:44:169"},"returnParameters":{"id":83883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83882,"mutability":"mutable","name":"isSlot1","nameLocation":"30217:7:169","nodeType":"VariableDeclaration","scope":83940,"src":"30212:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83881,"name":"bool","nodeType":"ElementaryTypeName","src":"30212:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30211:14:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83986,"nodeType":"FunctionDefinition","src":"31451:456:169","nodes":[],"body":{"id":83985,"nodeType":"Block","src":"31634:273:169","nodes":[],"statements":[{"assignments":[83953],"declarations":[{"constant":false,"id":83953,"mutability":"mutable","name":"a","nameLocation":"31652:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31644:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83952,"name":"uint256","nodeType":"ElementaryTypeName","src":"31644:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83954,"nodeType":"VariableDeclarationStatement","src":"31644:9:169"},{"id":83961,"nodeType":"UncheckedBlock","src":"31663:76:169","statements":[{"expression":{"id":83959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83955,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31687:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83956,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83943,"src":"31691:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83957,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83945,"src":"31710:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31691:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31687:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83960,"nodeType":"ExpressionStatement","src":"31687:41:169"}]},{"assignments":[83963],"declarations":[{"constant":false,"id":83963,"mutability":"mutable","name":"d","nameLocation":"31756:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31748:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83962,"name":"uint256","nodeType":"ElementaryTypeName","src":"31748:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83967,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83964,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31760:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":83965,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83947,"src":"31764:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31760:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31748:36:169"},{"assignments":[83969],"declarations":[{"constant":false,"id":83969,"mutability":"mutable","name":"r","nameLocation":"31802:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31794:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83968,"name":"uint256","nodeType":"ElementaryTypeName","src":"31794:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83973,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83970,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31806:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":83971,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83947,"src":"31810:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31806:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31794:36:169"},{"id":83984,"nodeType":"UncheckedBlock","src":"31840:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83974,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83969,"src":"31872:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":83975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31876:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31872:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83977,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31871:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83981,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83963,"src":"31889:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31871:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83978,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83963,"src":"31881:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31885:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"31881:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83951,"id":83983,"nodeType":"Return","src":"31864:26:169"}]}]},"documentation":{"id":83941,"nodeType":"StructuredDocumentation","src":"30955:491:169","text":" @dev Calculates the threshold number of valid signatures required.\n The formula is:\n - `(validatorsAmount * thresholdNumerator).div_ceil(thresholdDenominator)`\n @param validatorsAmount The total number of validators.\n @param thresholdNumerator The numerator of the threshold fraction.\n @param thresholdDenominator The denominator of the threshold fraction.\n @return threshold The threshold number of valid signatures required."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"31460:19:169","parameters":{"id":83948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83943,"mutability":"mutable","name":"validatorsAmount","nameLocation":"31488:16:169","nodeType":"VariableDeclaration","scope":83986,"src":"31480:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83942,"name":"uint256","nodeType":"ElementaryTypeName","src":"31480:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83945,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"31514:18:169","nodeType":"VariableDeclaration","scope":83986,"src":"31506:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83944,"name":"uint128","nodeType":"ElementaryTypeName","src":"31506:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83947,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"31542:20:169","nodeType":"VariableDeclaration","scope":83986,"src":"31534:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83946,"name":"uint128","nodeType":"ElementaryTypeName","src":"31534:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"31479:84:169"},"returnParameters":{"id":83951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83950,"mutability":"mutable","name":"threshold","nameLocation":"31619:9:169","nodeType":"VariableDeclaration","scope":83986,"src":"31611:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83949,"name":"uint256","nodeType":"ElementaryTypeName","src":"31611:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31610:19:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":84009,"nodeType":"FunctionDefinition","src":"32092:179:169","nodes":[],"body":{"id":84008,"nodeType":"Block","src":"32188:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83997,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83992,"src":"32206:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":83998,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"32211:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32218:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32211:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32231:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"32211:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"32206:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84002,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32205:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84003,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"32244:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32251:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32244:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32261:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"32244:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32205:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83996,"id":84007,"nodeType":"Return","src":"32198:66:169"}]},"documentation":{"id":83987,"nodeType":"StructuredDocumentation","src":"31913:174:169","text":" @dev Returns the era index for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era index."},"implemented":true,"kind":"function","modifiers":[],"name":"eraIndexAt","nameLocation":"32101:10:169","parameters":{"id":83993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83990,"mutability":"mutable","name":"router","nameLocation":"32136:6:169","nodeType":"VariableDeclaration","scope":84009,"src":"32112:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83989,"nodeType":"UserDefinedTypeName","pathNode":{"id":83988,"name":"IRouter.Storage","nameLocations":["32112:7:169","32120:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"32112:15:169"},"referencedDeclaration":74490,"src":"32112:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83992,"mutability":"mutable","name":"ts","nameLocation":"32152:2:169","nodeType":"VariableDeclaration","scope":84009,"src":"32144:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83991,"name":"uint256","nodeType":"ElementaryTypeName","src":"32144:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32111:44:169"},"returnParameters":{"id":83996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84009,"src":"32179:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83994,"name":"uint256","nodeType":"ElementaryTypeName","src":"32179:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32178:9:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84034,"nodeType":"FunctionDefinition","src":"32487:199:169","nodes":[],"body":{"id":84033,"nodeType":"Block","src":"32585:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84020,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32602:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32609:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32602:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32622:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"32602:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":84024,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32645:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84025,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84015,"src":"32653:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84023,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84009,"src":"32634:10:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32634:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":84027,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32659:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32666:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32659:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32676:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"32659:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32634:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32602:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84019,"id":84032,"nodeType":"Return","src":"32595:84:169"}]},"documentation":{"id":84010,"nodeType":"StructuredDocumentation","src":"32277:205:169","text":" @dev Returns the timestamp when the era started for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era start timestamp."},"implemented":true,"kind":"function","modifiers":[],"name":"eraStartedAt","nameLocation":"32496:12:169","parameters":{"id":84016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84013,"mutability":"mutable","name":"router","nameLocation":"32533:6:169","nodeType":"VariableDeclaration","scope":84034,"src":"32509:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84012,"nodeType":"UserDefinedTypeName","pathNode":{"id":84011,"name":"IRouter.Storage","nameLocations":["32509:7:169","32517:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"32509:15:169"},"referencedDeclaration":74490,"src":"32509:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84015,"mutability":"mutable","name":"ts","nameLocation":"32549:2:169","nodeType":"VariableDeclaration","scope":84034,"src":"32541:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84014,"name":"uint256","nodeType":"ElementaryTypeName","src":"32541:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32508:44:169"},"returnParameters":{"id":84019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84034,"src":"32576:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84017,"name":"uint256","nodeType":"ElementaryTypeName","src":"32576:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32575:9:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84057,"nodeType":"FunctionDefinition","src":"33026:467:169","nodes":[],"body":{"id":84056,"nodeType":"Block","src":"33172:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33244:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33255:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"33244:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84048,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33330:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33341:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"33330:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84050,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33401:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33412:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"33401:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84052,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33448:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33459:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"33448:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84044,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"33189:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":84045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33194:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":82940,"src":"33189:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$82940_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33223:19:169","33288:40:169","33395:4:169","33430:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"33189:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84043,"id":84055,"nodeType":"Return","src":"33182:304:169"}]},"documentation":{"id":84035,"nodeType":"StructuredDocumentation","src":"32692:329:169","text":" @dev Converts `Gear.Validators` storage to `Gear.ValidatorsView` struct.\n Note that `validators.map` is passed as `validators.list`.\n @param validators The `Gear.Validators` storage to convert.\n @return validatorsView `Gear.ValidatorsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33035:6:169","parameters":{"id":84039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84038,"mutability":"mutable","name":"validators","nameLocation":"33066:10:169","nodeType":"VariableDeclaration","scope":84057,"src":"33042:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84037,"nodeType":"UserDefinedTypeName","pathNode":{"id":84036,"name":"Gear.Validators","nameLocations":["33042:4:169","33047:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"33042:15:169"},"referencedDeclaration":82928,"src":"33042:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33041:36:169"},"returnParameters":{"id":84043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84042,"mutability":"mutable","name":"validatorsView","nameLocation":"33152:14:169","nodeType":"VariableDeclaration","scope":84057,"src":"33125:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84041,"nodeType":"UserDefinedTypeName","pathNode":{"id":84040,"name":"Gear.ValidatorsView","nameLocations":["33125:4:169","33130:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"33125:19:169"},"referencedDeclaration":82940,"src":"33125:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33124:43:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84098,"nodeType":"FunctionDefinition","src":"33790:581:169","nodes":[],"body":{"id":84097,"nodeType":"Block","src":"33948:423:169","nodes":[],"statements":[{"assignments":[84071],"declarations":[{"constant":false,"id":84071,"mutability":"mutable","name":"validators0","nameLocation":"33985:11:169","nodeType":"VariableDeclaration","scope":84097,"src":"33958:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84070,"nodeType":"UserDefinedTypeName","pathNode":{"id":84069,"name":"Gear.ValidatorsView","nameLocations":["33958:4:169","33963:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"33958:19:169"},"referencedDeclaration":82940,"src":"33958:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84076,"initialValue":{"arguments":[{"expression":{"id":84073,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34006:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34015:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"34006:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}],"id":84072,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84057,84098],"referencedDeclaration":84057,"src":"33999:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82928_storage_ptr_$returns$_t_struct$_ValidatorsView_$82940_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33999:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33958:69:169"},{"assignments":[84081],"declarations":[{"constant":false,"id":84081,"mutability":"mutable","name":"validators1","nameLocation":"34064:11:169","nodeType":"VariableDeclaration","scope":84097,"src":"34037:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84080,"nodeType":"UserDefinedTypeName","pathNode":{"id":84079,"name":"Gear.ValidatorsView","nameLocations":["34037:4:169","34042:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"34037:19:169"},"referencedDeclaration":82940,"src":"34037:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84086,"initialValue":{"arguments":[{"expression":{"id":84083,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34085:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34094:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"34085:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}],"id":84082,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84057,84098],"referencedDeclaration":84057,"src":"34078:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82928_storage_ptr_$returns$_t_struct$_ValidatorsView_$82940_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34078:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34037:69:169"},{"expression":{"arguments":[{"expression":{"id":84089,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34185:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34194:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"34185:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84091,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34248:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34257:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"34248:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84093,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84071,"src":"34304:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84094,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84081,"src":"34342:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84087,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"34123:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":84088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34128:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83199,"src":"34123:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83199_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34165:18:169","34226:20:169","34291:11:169","34329:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34123:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84066,"id":84096,"nodeType":"Return","src":"34116:248:169"}]},"documentation":{"id":84058,"nodeType":"StructuredDocumentation","src":"33499:286:169","text":" @dev Converts `Gear.ValidationSettings` storage to `Gear.ValidationSettingsView` struct.\n @param settings The `Gear.ValidationSettings` storage to convert.\n @return settingsView `Gear.ValidationSettingsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33799:6:169","parameters":{"id":84062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84061,"mutability":"mutable","name":"settings","nameLocation":"33838:8:169","nodeType":"VariableDeclaration","scope":84098,"src":"33806:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84060,"nodeType":"UserDefinedTypeName","pathNode":{"id":84059,"name":"Gear.ValidationSettings","nameLocations":["33806:4:169","33811:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":83187,"src":"33806:23:169"},"referencedDeclaration":83187,"src":"33806:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"33805:42:169"},"returnParameters":{"id":84066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84065,"mutability":"mutable","name":"settingsView","nameLocation":"33930:12:169","nodeType":"VariableDeclaration","scope":84098,"src":"33895:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84064,"nodeType":"UserDefinedTypeName","pathNode":{"id":84063,"name":"Gear.ValidationSettingsView","nameLocations":["33895:4:169","33900:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"33895:27:169"},"referencedDeclaration":83199,"src":"33895:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"33894:49:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":82854,"nodeType":"StructuredDocumentation","src":"744:770:169","text":" @dev Library for core protocol utility functions for hashing, validation, and consensus-related logic.\n It provides:\n - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions)\n - Validator set management with era-based switching and threshold configuration\n - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures\n with transient storage to prevent double counting of signatures\n - Era and timeline utilities for selecting correct validator sets based on timestamp\n The library acts as a shared foundation for consensus, validation, and commitment verification\n across all protocol components."},"fullyImplemented":true,"linearizedBaseContracts":[84099],"name":"Gear","nameLocation":"1523:4:169","scope":84100,"usedErrors":[82883,82886,82889,82892,82895,82898,82901],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":169} \ No newline at end of file +{"abi":[{"type":"function","name":"COMPUTATION_THRESHOLD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"WVARA_PER_SECOND","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760a19081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:33310:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:33310:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:33310:169;;;;;;;2071:1;1515:33310;;;;;;;;;;-1:-1:-1;;1515:33310:169;;;;;;;1855:13;1515:33310;;;;;;-1:-1:-1;;1515:33310:169;;;;;;;2383:18;1515:33310;;;;;;-1:-1:-1;;1515:33310:169;;;;;2203:1;1515:33310;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPUTATION_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WVARA_PER_SECOND\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Library for core protocol utility functions for hashing, validation, and consensus-related logic. It provides: - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions) - Validator set management with era-based switching and threshold configuration - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures with transient storage to prevent double counting of signatures - Era and timeline utilities for selecting correct validator sets based on timestamp The library acts as a shared foundation for consensus, validation, and commitment verification across all protocol components.\",\"errors\":{\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"COMPUTATION_THRESHOLD\":{\"details\":\"The threshold for computation cost in gear gas. 2.5 * (10 ** 9) of gear gas.\"},\"VALIDATORS_THRESHOLD_DENOMINATOR\":{\"details\":\"The validators threshold denominator.\"},\"VALIDATORS_THRESHOLD_NUMERATOR\":{\"details\":\"2/3 of validators must sign the commitment for it to be valid.The validators threshold numerator.\"},\"WVARA_PER_SECOND\":{\"details\":\"The amount of WVara tokens to be paid per compute second. 10 WVARA tokens per compute second.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Gear.sol\":\"Gear\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"stateMutability":"view","type":"function","name":"COMPUTATION_THRESHOLD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WVARA_PER_SECOND","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"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/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84268,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84267],"Hashes":[41483],"IRouter":[74995],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:34752:169","nodes":[{"id":82989,"nodeType":"PragmaDirective","src":"74:24:169","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82991,"nodeType":"ImportDirective","src":"100:80:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":82990,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82993,"nodeType":"ImportDirective","src":"181:78:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":82992,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82995,"nodeType":"ImportDirective","src":"260:75:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":82994,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82997,"nodeType":"ImportDirective","src":"336:97:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":82996,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82999,"nodeType":"ImportDirective","src":"434:73:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":82998,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83001,"nodeType":"ImportDirective","src":"508:66:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":83000,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83003,"nodeType":"ImportDirective","src":"575:52:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":83002,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83005,"nodeType":"ImportDirective","src":"628:73:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":83004,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83007,"nodeType":"ImportDirective","src":"702:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84268,"sourceUnit":74996,"symbolAliases":[{"foreign":{"id":83006,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74995,"src":"710:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84267,"nodeType":"ContractDefinition","src":"1515:33310:169","nodes":[{"id":83011,"nodeType":"UsingForDirective","src":"1534:24:169","nodes":[],"global":false,"libraryName":{"id":83009,"name":"ECDSA","nameLocations":["1540:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:169"},"typeName":{"id":83010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":83014,"nodeType":"UsingForDirective","src":"1563:35:169","nodes":[],"global":false,"libraryName":{"id":83012,"name":"MessageHashUtils","nameLocations":["1569:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:169"},"typeName":{"id":83013,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":83016,"nodeType":"UsingForDirective","src":"1604:26:169","nodes":[],"global":false,"libraryName":{"id":83015,"name":"TransientSlot","nameLocations":["1610:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:169"}},{"id":83018,"nodeType":"UsingForDirective","src":"1635:27:169","nodes":[],"global":false,"libraryName":{"id":83017,"name":"SlotDerivation","nameLocations":["1641:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:169"}},{"id":83022,"nodeType":"VariableDeclaration","src":"1808:60:169","nodes":[],"constant":true,"documentation":{"id":83019,"nodeType":"StructuredDocumentation","src":"1691:112:169","text":" @dev The threshold for computation cost in gear gas.\n 2.5 * (10 ** 9) of gear gas."},"functionSelector":"7841919a","mutability":"constant","name":"COMPUTATION_THRESHOLD","nameLocation":"1831:21:169","scope":84267,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83020,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":83021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:13:169","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":83026,"nodeType":"VariableDeclaration","src":"2014:58:169","nodes":[],"constant":true,"documentation":{"id":83023,"nodeType":"StructuredDocumentation","src":"1875:134:169","text":" @dev 2/3 of validators must sign the commitment for it to be valid.\n @dev The validators threshold numerator."},"functionSelector":"db3fe3f1","mutability":"constant","name":"VALIDATORS_THRESHOLD_NUMERATOR","nameLocation":"2038:30:169","scope":84267,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83024,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":83025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2071:1:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":83030,"nodeType":"VariableDeclaration","src":"2144:60:169","nodes":[],"constant":true,"documentation":{"id":83027,"nodeType":"StructuredDocumentation","src":"2078:61:169","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2168:32:169","scope":84267,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83028,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":83029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:169","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":83034,"nodeType":"VariableDeclaration","src":"2340:61:169","nodes":[],"constant":true,"documentation":{"id":83031,"nodeType":"StructuredDocumentation","src":"2211:124:169","text":" @dev The amount of WVara tokens to be paid per compute second.\n 10 WVARA tokens per compute second."},"functionSelector":"2c184e1c","mutability":"constant","name":"WVARA_PER_SECOND","nameLocation":"2364:16:169","scope":84267,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83032,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":83033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:18:169","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":83037,"nodeType":"ErrorDefinition","src":"2528:32:169","nodes":[],"documentation":{"id":83035,"nodeType":"StructuredDocumentation","src":"2428:95:169","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2534:23:169","parameters":{"id":83036,"nodeType":"ParameterList","parameters":[],"src":"2557:2:169"}},{"id":83040,"nodeType":"ErrorDefinition","src":"2652:38:169","nodes":[],"documentation":{"id":83038,"nodeType":"StructuredDocumentation","src":"2566:81:169","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2658:29:169","parameters":{"id":83039,"nodeType":"ParameterList","parameters":[],"src":"2687:2:169"}},{"id":83043,"nodeType":"ErrorDefinition","src":"2768:26:169","nodes":[],"documentation":{"id":83041,"nodeType":"StructuredDocumentation","src":"2696:67:169","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2774:17:169","parameters":{"id":83042,"nodeType":"ParameterList","parameters":[],"src":"2791:2:169"}},{"id":83046,"nodeType":"ErrorDefinition","src":"2883:35:169","nodes":[],"documentation":{"id":83044,"nodeType":"StructuredDocumentation","src":"2800:78:169","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2889:26:169","parameters":{"id":83045,"nodeType":"ParameterList","parameters":[],"src":"2915:2:169"}},{"id":83049,"nodeType":"ErrorDefinition","src":"3037:36:169","nodes":[],"documentation":{"id":83047,"nodeType":"StructuredDocumentation","src":"2924:108:169","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3043:27:169","parameters":{"id":83048,"nodeType":"ParameterList","parameters":[],"src":"3070:2:169"}},{"id":83052,"nodeType":"ErrorDefinition","src":"3251:36:169","nodes":[],"documentation":{"id":83050,"nodeType":"StructuredDocumentation","src":"3079:167:169","text":" @dev Thrown when the timestamp of an era is equal to the timestamp of the previous era.\n Should never happen, because the implementation."},"errorSelector":"f26224af","name":"ErasTimestampMustNotBeEqual","nameLocation":"3257:27:169","parameters":{"id":83051,"nodeType":"ParameterList","parameters":[],"src":"3284:2:169"}},{"id":83055,"nodeType":"ErrorDefinition","src":"3441:39:169","nodes":[],"documentation":{"id":83053,"nodeType":"StructuredDocumentation","src":"3293:143:169","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3447:30:169","parameters":{"id":83054,"nodeType":"ParameterList","parameters":[],"src":"3477:2:169"}},{"id":83061,"nodeType":"StructDefinition","src":"3768:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":83056,"nodeType":"StructuredDocumentation","src":"3507:256:169","text":" @dev Represents an aggregated public key.\n When present (`hasAggregatedPublicKey` is `true`), it is checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":83058,"mutability":"mutable","name":"x","nameLocation":"3813:1:169","nodeType":"VariableDeclaration","scope":83061,"src":"3805:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83057,"name":"uint256","nodeType":"ElementaryTypeName","src":"3805:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83060,"mutability":"mutable","name":"y","nameLocation":"3832:1:169","nodeType":"VariableDeclaration","scope":83061,"src":"3824:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83059,"name":"uint256","nodeType":"ElementaryTypeName","src":"3824:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3775:19:169","scope":84267,"visibility":"public"},{"id":83082,"nodeType":"StructDefinition","src":"3909:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":83062,"nodeType":"StructuredDocumentation","src":"3846:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":83066,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4299:19:169","nodeType":"VariableDeclaration","scope":83082,"src":"4279:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83065,"nodeType":"UserDefinedTypeName","pathNode":{"id":83064,"name":"AggregatedPublicKey","nameLocations":["4279:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83061,"src":"4279:19:169"},"referencedDeclaration":83061,"src":"4279:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83069,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4626:40:169","nodeType":"VariableDeclaration","scope":83082,"src":"4618:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83068,"name":"address","nodeType":"ElementaryTypeName","src":"4618:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83074,"mutability":"mutable","name":"map","nameLocation":"4884:3:169","nodeType":"VariableDeclaration","scope":83082,"src":"4859:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":83073,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83071,"name":"address","nodeType":"ElementaryTypeName","src":"4867:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4859:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83072,"name":"bool","nodeType":"ElementaryTypeName","src":"4878:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":83078,"mutability":"mutable","name":"list","nameLocation":"4976:4:169","nodeType":"VariableDeclaration","scope":83082,"src":"4966:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83076,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83077,"nodeType":"ArrayTypeName","src":"4966:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83081,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5086:16:169","nodeType":"VariableDeclaration","scope":83082,"src":"5078:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83080,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3916:10:169","scope":84267,"visibility":"public"},{"id":83094,"nodeType":"StructDefinition","src":"5186:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":83083,"nodeType":"StructuredDocumentation","src":"5115:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":83086,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5238:19:169","nodeType":"VariableDeclaration","scope":83094,"src":"5218:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83085,"nodeType":"UserDefinedTypeName","pathNode":{"id":83084,"name":"AggregatedPublicKey","nameLocations":["5218:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83061,"src":"5218:19:169"},"referencedDeclaration":83061,"src":"5218:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83088,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5275:40:169","nodeType":"VariableDeclaration","scope":83094,"src":"5267:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83087,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83091,"mutability":"mutable","name":"list","nameLocation":"5335:4:169","nodeType":"VariableDeclaration","scope":83094,"src":"5325:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83089,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83090,"nodeType":"ArrayTypeName","src":"5325:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83093,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5357:16:169","nodeType":"VariableDeclaration","scope":83094,"src":"5349:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83092,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5193:14:169","scope":84267,"visibility":"public"},{"id":83105,"nodeType":"StructDefinition","src":"5451:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":83095,"nodeType":"StructuredDocumentation","src":"5386:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":83098,"mutability":"mutable","name":"mirror","nameLocation":"5566:6:169","nodeType":"VariableDeclaration","scope":83105,"src":"5558:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83097,"name":"address","nodeType":"ElementaryTypeName","src":"5558:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83101,"mutability":"mutable","name":"wrappedVara","nameLocation":"5673:11:169","nodeType":"VariableDeclaration","scope":83105,"src":"5665:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83100,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83104,"mutability":"mutable","name":"middleware","nameLocation":"5787:10:169","nodeType":"VariableDeclaration","scope":83105,"src":"5779:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83103,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5458:11:169","scope":84267,"visibility":"public"},{"id":83113,"nodeType":"StructDefinition","src":"5866:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":83106,"nodeType":"StructuredDocumentation","src":"5810:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":83109,"mutability":"mutable","name":"id","nameLocation":"6010:2:169","nodeType":"VariableDeclaration","scope":83113,"src":"6002:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6002:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83112,"mutability":"mutable","name":"valid","nameLocation":"6102:5:169","nodeType":"VariableDeclaration","scope":83113,"src":"6097:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83111,"name":"bool","nodeType":"ElementaryTypeName","src":"6097:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5873:14:169","scope":84267,"visibility":"public"},{"id":83126,"nodeType":"StructDefinition","src":"6177:541:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":83114,"nodeType":"StructuredDocumentation","src":"6120:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":83119,"mutability":"mutable","name":"transitions","nameLocation":"6319:11:169","nodeType":"VariableDeclaration","scope":83126,"src":"6301:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":83117,"nodeType":"UserDefinedTypeName","pathNode":{"id":83116,"name":"StateTransition","nameLocations":["6301:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83329,"src":"6301:15:169"},"referencedDeclaration":83329,"src":"6301:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":83118,"nodeType":"ArrayTypeName","src":"6301:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":83122,"mutability":"mutable","name":"head","nameLocation":"6436:4:169","nodeType":"VariableDeclaration","scope":83126,"src":"6428:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6428:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83125,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6691:20:169","nodeType":"VariableDeclaration","scope":83126,"src":"6683:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6184:15:169","scope":84267,"visibility":"public"},{"id":83140,"nodeType":"StructDefinition","src":"6786:226:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":83127,"nodeType":"StructuredDocumentation","src":"6724:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":83129,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6829:22:169","nodeType":"VariableDeclaration","scope":83140,"src":"6824:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83128,"name":"bool","nodeType":"ElementaryTypeName","src":"6824:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83132,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6881:19:169","nodeType":"VariableDeclaration","scope":83140,"src":"6861:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83131,"nodeType":"UserDefinedTypeName","pathNode":{"id":83130,"name":"AggregatedPublicKey","nameLocations":["6861:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83061,"src":"6861:19:169"},"referencedDeclaration":83061,"src":"6861:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83134,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6916:33:169","nodeType":"VariableDeclaration","scope":83140,"src":"6910:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83133,"name":"bytes","nodeType":"ElementaryTypeName","src":"6910:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83137,"mutability":"mutable","name":"validators","nameLocation":"6969:10:169","nodeType":"VariableDeclaration","scope":83140,"src":"6959:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83135,"name":"address","nodeType":"ElementaryTypeName","src":"6959:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83136,"nodeType":"ArrayTypeName","src":"6959:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83139,"mutability":"mutable","name":"eraIndex","nameLocation":"6997:8:169","nodeType":"VariableDeclaration","scope":83140,"src":"6989:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83138,"name":"uint256","nodeType":"ElementaryTypeName","src":"6989:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6793:20:169","scope":84267,"visibility":"public"},{"id":83174,"nodeType":"StructDefinition","src":"7075:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":83141,"nodeType":"StructuredDocumentation","src":"7018:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":83144,"mutability":"mutable","name":"blockHash","nameLocation":"7212:9:169","nodeType":"VariableDeclaration","scope":83174,"src":"7204:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7204:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83147,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7340:14:169","nodeType":"VariableDeclaration","scope":83174,"src":"7333:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83146,"name":"uint48","nodeType":"ElementaryTypeName","src":"7333:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83150,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7453:26:169","nodeType":"VariableDeclaration","scope":83174,"src":"7445:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7445:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83153,"mutability":"mutable","name":"expiry","nameLocation":"7715:6:169","nodeType":"VariableDeclaration","scope":83174,"src":"7709:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83152,"name":"uint8","nodeType":"ElementaryTypeName","src":"7709:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83158,"mutability":"mutable","name":"chainCommitment","nameLocation":"7841:15:169","nodeType":"VariableDeclaration","scope":83174,"src":"7823:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83126_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":83156,"nodeType":"UserDefinedTypeName","pathNode":{"id":83155,"name":"ChainCommitment","nameLocations":["7823:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83126,"src":"7823:15:169"},"referencedDeclaration":83126,"src":"7823:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":83157,"nodeType":"ArrayTypeName","src":"7823:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83126_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83163,"mutability":"mutable","name":"codeCommitments","nameLocation":"7968:15:169","nodeType":"VariableDeclaration","scope":83174,"src":"7951:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83113_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":83161,"nodeType":"UserDefinedTypeName","pathNode":{"id":83160,"name":"CodeCommitment","nameLocations":["7951:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83113,"src":"7951:14:169"},"referencedDeclaration":83113,"src":"7951:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":83162,"nodeType":"ArrayTypeName","src":"7951:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83113_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83168,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8107:17:169","nodeType":"VariableDeclaration","scope":83174,"src":"8087:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83184_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":83166,"nodeType":"UserDefinedTypeName","pathNode":{"id":83165,"name":"RewardsCommitment","nameLocations":["8087:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":83184,"src":"8087:17:169"},"referencedDeclaration":83184,"src":"8087:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":83167,"nodeType":"ArrayTypeName","src":"8087:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83184_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83173,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8254:20:169","nodeType":"VariableDeclaration","scope":83174,"src":"8231:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83140_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":83171,"nodeType":"UserDefinedTypeName","pathNode":{"id":83170,"name":"ValidatorsCommitment","nameLocations":["8231:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":83140,"src":"8231:20:169"},"referencedDeclaration":83140,"src":"8231:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":83172,"nodeType":"ArrayTypeName","src":"8231:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83140_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7082:15:169","scope":84267,"visibility":"public"},{"id":83184,"nodeType":"StructDefinition","src":"8346:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":83175,"nodeType":"StructuredDocumentation","src":"8287:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":83178,"mutability":"mutable","name":"operators","nameLocation":"8407:9:169","nodeType":"VariableDeclaration","scope":83184,"src":"8381:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83190_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":83177,"nodeType":"UserDefinedTypeName","pathNode":{"id":83176,"name":"OperatorRewardsCommitment","nameLocations":["8381:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":83190,"src":"8381:25:169"},"referencedDeclaration":83190,"src":"8381:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83190_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83181,"mutability":"mutable","name":"stakers","nameLocation":"8450:7:169","nodeType":"VariableDeclaration","scope":83184,"src":"8426:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":83180,"nodeType":"UserDefinedTypeName","pathNode":{"id":83179,"name":"StakerRewardsCommitment","nameLocations":["8426:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":83200,"src":"8426:23:169"},"referencedDeclaration":83200,"src":"8426:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83183,"mutability":"mutable","name":"timestamp","nameLocation":"8474:9:169","nodeType":"VariableDeclaration","scope":83184,"src":"8467:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83182,"name":"uint48","nodeType":"ElementaryTypeName","src":"8467:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8353:17:169","scope":84267,"visibility":"public"},{"id":83190,"nodeType":"StructDefinition","src":"8564:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":83185,"nodeType":"StructuredDocumentation","src":"8496:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":83187,"mutability":"mutable","name":"amount","nameLocation":"8615:6:169","nodeType":"VariableDeclaration","scope":83190,"src":"8607:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83186,"name":"uint256","nodeType":"ElementaryTypeName","src":"8607:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83189,"mutability":"mutable","name":"root","nameLocation":"8639:4:169","nodeType":"VariableDeclaration","scope":83190,"src":"8631:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8631:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8571:25:169","scope":84267,"visibility":"public"},{"id":83200,"nodeType":"StructDefinition","src":"8722:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83191,"nodeType":"StructuredDocumentation","src":"8656:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83195,"mutability":"mutable","name":"distribution","nameLocation":"8779:12:169","nodeType":"VariableDeclaration","scope":83200,"src":"8763:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83206_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83193,"nodeType":"UserDefinedTypeName","pathNode":{"id":83192,"name":"StakerRewards","nameLocations":["8763:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83206,"src":"8763:13:169"},"referencedDeclaration":83206,"src":"8763:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83194,"nodeType":"ArrayTypeName","src":"8763:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83206_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83197,"mutability":"mutable","name":"totalAmount","nameLocation":"8809:11:169","nodeType":"VariableDeclaration","scope":83200,"src":"8801:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83196,"name":"uint256","nodeType":"ElementaryTypeName","src":"8801:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83199,"mutability":"mutable","name":"token","nameLocation":"8838:5:169","nodeType":"VariableDeclaration","scope":83200,"src":"8830:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83198,"name":"address","nodeType":"ElementaryTypeName","src":"8830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8729:23:169","scope":84267,"visibility":"public"},{"id":83206,"nodeType":"StructDefinition","src":"8911:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83201,"nodeType":"StructuredDocumentation","src":"8856:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83203,"mutability":"mutable","name":"vault","nameLocation":"8950:5:169","nodeType":"VariableDeclaration","scope":83206,"src":"8942:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83202,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83205,"mutability":"mutable","name":"amount","nameLocation":"8973:6:169","nodeType":"VariableDeclaration","scope":83206,"src":"8965:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83204,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8918:13:169","scope":84267,"visibility":"public"},{"id":83214,"nodeType":"EnumDefinition","src":"9061:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83207,"nodeType":"StructuredDocumentation","src":"8992:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83208,"nodeType":"StructuredDocumentation","src":"9086:260:169","text":" @dev The code commitment is in an unknown state (`CodeState.Unknown = 0 as uint8`).\n This is the default state for all code commitments,\n and it means that the code commitment has not been processed yet."},"id":83209,"name":"Unknown","nameLocation":"9355:7:169","nodeType":"EnumValue","src":"9355:7:169"},{"documentation":{"id":83210,"nodeType":"StructuredDocumentation","src":"9372:465:169","text":" @dev The code commitment has requested validation by user (`CodeState.ValidationRequested = 1 as uint8`).\n Users calls `IRouter(router).requestCodeValidation(bytes32 _codeId)` to request code validation and\n attaches sidecar to this transaction (the transaction is encoded in EIP-7594 format),\n then validators can validate the code commitment and set `CodeState.Validated` in case of success."},"id":83211,"name":"ValidationRequested","nameLocation":"9846:19:169","nodeType":"EnumValue","src":"9846:19:169"},{"documentation":{"id":83212,"nodeType":"StructuredDocumentation","src":"9875:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83213,"name":"Validated","nameLocation":"10006:9:169","nodeType":"EnumValue","src":"10006:9:169"}],"name":"CodeState","nameLocation":"9066:9:169"},{"id":83220,"nodeType":"StructDefinition","src":"10101:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83215,"nodeType":"StructuredDocumentation","src":"10027:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83217,"mutability":"mutable","name":"hash","nameLocation":"10145:4:169","nodeType":"VariableDeclaration","scope":83220,"src":"10137:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10137:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83219,"mutability":"mutable","name":"timestamp","nameLocation":"10166:9:169","nodeType":"VariableDeclaration","scope":83220,"src":"10159:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83218,"name":"uint48","nodeType":"ElementaryTypeName","src":"10159:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10108:18:169","scope":84267,"visibility":"public"},{"id":83226,"nodeType":"StructDefinition","src":"10249:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83221,"nodeType":"StructuredDocumentation","src":"10188:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83223,"mutability":"mutable","name":"threshold","nameLocation":"10293:9:169","nodeType":"VariableDeclaration","scope":83226,"src":"10286:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83222,"name":"uint64","nodeType":"ElementaryTypeName","src":"10286:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83225,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10320:14:169","nodeType":"VariableDeclaration","scope":83226,"src":"10312:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83224,"name":"uint128","nodeType":"ElementaryTypeName","src":"10312:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10256:19:169","scope":84267,"visibility":"public"},{"id":83234,"nodeType":"StructDefinition","src":"10419:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83227,"nodeType":"StructuredDocumentation","src":"10347:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83229,"mutability":"mutable","name":"hash","nameLocation":"10461:4:169","nodeType":"VariableDeclaration","scope":83234,"src":"10453:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10453:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83231,"mutability":"mutable","name":"number","nameLocation":"10482:6:169","nodeType":"VariableDeclaration","scope":83234,"src":"10475:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83230,"name":"uint32","nodeType":"ElementaryTypeName","src":"10475:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83233,"mutability":"mutable","name":"timestamp","nameLocation":"10505:9:169","nodeType":"VariableDeclaration","scope":83234,"src":"10498:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83232,"name":"uint48","nodeType":"ElementaryTypeName","src":"10498:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10426:16:169","scope":84267,"visibility":"public"},{"id":83255,"nodeType":"StructDefinition","src":"10575:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83235,"nodeType":"StructuredDocumentation","src":"10527:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":83238,"mutability":"mutable","name":"id","nameLocation":"10700:2:169","nodeType":"VariableDeclaration","scope":83255,"src":"10692:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10692:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83241,"mutability":"mutable","name":"destination","nameLocation":"10896:11:169","nodeType":"VariableDeclaration","scope":83255,"src":"10888:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83240,"name":"address","nodeType":"ElementaryTypeName","src":"10888:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83244,"mutability":"mutable","name":"payload","nameLocation":"10991:7:169","nodeType":"VariableDeclaration","scope":83255,"src":"10985:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83243,"name":"bytes","nodeType":"ElementaryTypeName","src":"10985:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83247,"mutability":"mutable","name":"value","nameLocation":"11095:5:169","nodeType":"VariableDeclaration","scope":83255,"src":"11087:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83246,"name":"uint128","nodeType":"ElementaryTypeName","src":"11087:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83251,"mutability":"mutable","name":"replyDetails","nameLocation":"11343:12:169","nodeType":"VariableDeclaration","scope":83255,"src":"11330:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83250,"nodeType":"UserDefinedTypeName","pathNode":{"id":83249,"name":"ReplyDetails","nameLocations":["11330:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":83291,"src":"11330:12:169"},"referencedDeclaration":83291,"src":"11330:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83254,"mutability":"mutable","name":"call","nameLocation":"11656:4:169","nodeType":"VariableDeclaration","scope":83255,"src":"11651:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83253,"name":"bool","nodeType":"ElementaryTypeName","src":"11651:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10582:7:169","scope":84267,"visibility":"public"},{"id":83283,"nodeType":"StructDefinition","src":"11731:1298:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83256,"nodeType":"StructuredDocumentation","src":"11673:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83262,"mutability":"mutable","name":"codes","nameLocation":"12005:5:169","nodeType":"VariableDeclaration","scope":83283,"src":"11975:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83261,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11983:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11975:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83260,"nodeType":"UserDefinedTypeName","pathNode":{"id":83259,"name":"CodeState","nameLocations":["11994:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":83214,"src":"11994:9:169"},"referencedDeclaration":83214,"src":"11994:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83267,"mutability":"mutable","name":"programs","nameLocation":"12223:8:169","nodeType":"VariableDeclaration","scope":83283,"src":"12195:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83266,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83264,"name":"address","nodeType":"ElementaryTypeName","src":"12203:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12195:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12214:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83270,"mutability":"mutable","name":"programsCount","nameLocation":"12340:13:169","nodeType":"VariableDeclaration","scope":83283,"src":"12332:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83269,"name":"uint256","nodeType":"ElementaryTypeName","src":"12332:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83273,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12468:19:169","nodeType":"VariableDeclaration","scope":83283,"src":"12460:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83272,"name":"uint256","nodeType":"ElementaryTypeName","src":"12460:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83276,"mutability":"mutable","name":"maxValidators","nameLocation":"12586:13:169","nodeType":"VariableDeclaration","scope":83283,"src":"12579:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83275,"name":"uint16","nodeType":"ElementaryTypeName","src":"12579:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83279,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12777:28:169","nodeType":"VariableDeclaration","scope":83283,"src":"12769:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83278,"name":"uint256","nodeType":"ElementaryTypeName","src":"12769:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83282,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12993:29:169","nodeType":"VariableDeclaration","scope":83283,"src":"12985:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83281,"name":"uint256","nodeType":"ElementaryTypeName","src":"12985:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11738:12:169","scope":84267,"visibility":"public"},{"id":83291,"nodeType":"StructDefinition","src":"13095:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83284,"nodeType":"StructuredDocumentation","src":"13035:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83287,"mutability":"mutable","name":"to","nameLocation":"13304:2:169","nodeType":"VariableDeclaration","scope":83291,"src":"13296:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13296:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83290,"mutability":"mutable","name":"code","nameLocation":"13648:4:169","nodeType":"VariableDeclaration","scope":83291,"src":"13641:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83289,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13641:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13102:12:169","scope":84267,"visibility":"public"},{"id":83329,"nodeType":"StructDefinition","src":"13936:1782:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83292,"nodeType":"StructuredDocumentation","src":"13665:266:169","text":" @dev Represents state transition of `Mirror`.\n Most important type in this, in Rust we use this type to mutate state of `Mirror` instances.\n (see `ethexe/common/src/gear.rs` for more details on how this type is used in Rust)."},"members":[{"constant":false,"id":83295,"mutability":"mutable","name":"actorId","nameLocation":"14163:7:169","nodeType":"VariableDeclaration","scope":83329,"src":"14155:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83294,"name":"address","nodeType":"ElementaryTypeName","src":"14155:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83298,"mutability":"mutable","name":"newStateHash","nameLocation":"14344:12:169","nodeType":"VariableDeclaration","scope":83329,"src":"14336:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14336:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83301,"mutability":"mutable","name":"exited","nameLocation":"14451:6:169","nodeType":"VariableDeclaration","scope":83329,"src":"14446:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83300,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83304,"mutability":"mutable","name":"inheritor","nameLocation":"14653:9:169","nodeType":"VariableDeclaration","scope":83329,"src":"14645:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83303,"name":"address","nodeType":"ElementaryTypeName","src":"14645:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83307,"mutability":"mutable","name":"valueToReceive","nameLocation":"15031:14:169","nodeType":"VariableDeclaration","scope":83329,"src":"15023:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83306,"name":"uint128","nodeType":"ElementaryTypeName","src":"15023:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83310,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15327:26:169","nodeType":"VariableDeclaration","scope":83329,"src":"15322:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83309,"name":"bool","nodeType":"ElementaryTypeName","src":"15322:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83315,"mutability":"mutable","name":"valueClaims","nameLocation":"15439:11:169","nodeType":"VariableDeclaration","scope":83329,"src":"15426:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":83313,"nodeType":"UserDefinedTypeName","pathNode":{"id":83312,"name":"ValueClaim","nameLocations":["15426:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83369,"src":"15426:10:169"},"referencedDeclaration":83369,"src":"15426:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":83314,"nodeType":"ArrayTypeName","src":"15426:12:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":83320,"mutability":"mutable","name":"messages","nameLocation":"15529:8:169","nodeType":"VariableDeclaration","scope":83329,"src":"15519:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83318,"nodeType":"UserDefinedTypeName","pathNode":{"id":83317,"name":"Message","nameLocations":["15519:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83255,"src":"15519:7:169"},"referencedDeclaration":83255,"src":"15519:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_storage_ptr","typeString":"struct Gear.Message"}},"id":83319,"nodeType":"ArrayTypeName","src":"15519:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"},{"constant":false,"id":83324,"mutability":"mutable","name":"events","nameLocation":"15612:6:169","nodeType":"VariableDeclaration","scope":83329,"src":"15604:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83322,"name":"bytes","nodeType":"ElementaryTypeName","src":"15604:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83323,"nodeType":"ArrayTypeName","src":"15604:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83328,"mutability":"mutable","name":"ethEvents","nameLocation":"15702:9:169","nodeType":"VariableDeclaration","scope":83329,"src":"15694:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83326,"name":"bytes","nodeType":"ElementaryTypeName","src":"15694:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83327,"nodeType":"ArrayTypeName","src":"15694:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"13943:15:169","scope":84267,"visibility":"public"},{"id":83337,"nodeType":"StructDefinition","src":"15778:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83330,"nodeType":"StructuredDocumentation","src":"15724:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83332,"mutability":"mutable","name":"era","nameLocation":"15813:3:169","nodeType":"VariableDeclaration","scope":83337,"src":"15805:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83331,"name":"uint256","nodeType":"ElementaryTypeName","src":"15805:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83334,"mutability":"mutable","name":"election","nameLocation":"15834:8:169","nodeType":"VariableDeclaration","scope":83337,"src":"15826:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15826:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83336,"mutability":"mutable","name":"validationDelay","nameLocation":"15860:15:169","nodeType":"VariableDeclaration","scope":83337,"src":"15852:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83335,"name":"uint256","nodeType":"ElementaryTypeName","src":"15852:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15785:9:169","scope":84267,"visibility":"public"},{"id":83349,"nodeType":"StructDefinition","src":"15952:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83338,"nodeType":"StructuredDocumentation","src":"15888:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83340,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15996:18:169","nodeType":"VariableDeclaration","scope":83349,"src":"15988:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83339,"name":"uint128","nodeType":"ElementaryTypeName","src":"15988:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83342,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16032:20:169","nodeType":"VariableDeclaration","scope":83349,"src":"16024:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83341,"name":"uint128","nodeType":"ElementaryTypeName","src":"16024:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83345,"mutability":"mutable","name":"validators0","nameLocation":"16073:11:169","nodeType":"VariableDeclaration","scope":83349,"src":"16062:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83344,"nodeType":"UserDefinedTypeName","pathNode":{"id":83343,"name":"Validators","nameLocations":["16062:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"16062:10:169"},"referencedDeclaration":83082,"src":"16062:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83348,"mutability":"mutable","name":"validators1","nameLocation":"16105:11:169","nodeType":"VariableDeclaration","scope":83349,"src":"16094:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83347,"nodeType":"UserDefinedTypeName","pathNode":{"id":83346,"name":"Validators","nameLocations":["16094:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"16094:10:169"},"referencedDeclaration":83082,"src":"16094:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15959:18:169","scope":84267,"visibility":"public"},{"id":83361,"nodeType":"StructDefinition","src":"16201:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83350,"nodeType":"StructuredDocumentation","src":"16129:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83352,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16249:18:169","nodeType":"VariableDeclaration","scope":83361,"src":"16241:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83351,"name":"uint128","nodeType":"ElementaryTypeName","src":"16241:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83354,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16285:20:169","nodeType":"VariableDeclaration","scope":83361,"src":"16277:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83353,"name":"uint128","nodeType":"ElementaryTypeName","src":"16277:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83357,"mutability":"mutable","name":"validators0","nameLocation":"16330:11:169","nodeType":"VariableDeclaration","scope":83361,"src":"16315:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83356,"nodeType":"UserDefinedTypeName","pathNode":{"id":83355,"name":"ValidatorsView","nameLocations":["16315:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83094,"src":"16315:14:169"},"referencedDeclaration":83094,"src":"16315:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83360,"mutability":"mutable","name":"validators1","nameLocation":"16366:11:169","nodeType":"VariableDeclaration","scope":83361,"src":"16351:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83359,"nodeType":"UserDefinedTypeName","pathNode":{"id":83358,"name":"ValidatorsView","nameLocations":["16351:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83094,"src":"16351:14:169"},"referencedDeclaration":83094,"src":"16351:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16208:22:169","scope":84267,"visibility":"public"},{"id":83369,"nodeType":"StructDefinition","src":"16446:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83362,"nodeType":"StructuredDocumentation","src":"16390:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83364,"mutability":"mutable","name":"messageId","nameLocation":"16482:9:169","nodeType":"VariableDeclaration","scope":83369,"src":"16474:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16474:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83366,"mutability":"mutable","name":"destination","nameLocation":"16509:11:169","nodeType":"VariableDeclaration","scope":83369,"src":"16501:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83365,"name":"address","nodeType":"ElementaryTypeName","src":"16501:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83368,"mutability":"mutable","name":"value","nameLocation":"16538:5:169","nodeType":"VariableDeclaration","scope":83369,"src":"16530:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83367,"name":"uint128","nodeType":"ElementaryTypeName","src":"16530:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16453:10:169","scope":84267,"visibility":"public"},{"id":83391,"nodeType":"StructDefinition","src":"16630:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83370,"nodeType":"StructuredDocumentation","src":"16556:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83372,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16706:13:169","nodeType":"VariableDeclaration","scope":83391,"src":"16698:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83371,"name":"address","nodeType":"ElementaryTypeName","src":"16698:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83374,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16737:16:169","nodeType":"VariableDeclaration","scope":83391,"src":"16729:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83373,"name":"address","nodeType":"ElementaryTypeName","src":"16729:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83376,"mutability":"mutable","name":"networkRegistry","nameLocation":"16771:15:169","nodeType":"VariableDeclaration","scope":83391,"src":"16763:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83375,"name":"address","nodeType":"ElementaryTypeName","src":"16763:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83378,"mutability":"mutable","name":"middlewareService","nameLocation":"16804:17:169","nodeType":"VariableDeclaration","scope":83391,"src":"16796:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83377,"name":"address","nodeType":"ElementaryTypeName","src":"16796:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83380,"mutability":"mutable","name":"networkOptIn","nameLocation":"16839:12:169","nodeType":"VariableDeclaration","scope":83391,"src":"16831:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83379,"name":"address","nodeType":"ElementaryTypeName","src":"16831:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83382,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16869:20:169","nodeType":"VariableDeclaration","scope":83391,"src":"16861:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83381,"name":"address","nodeType":"ElementaryTypeName","src":"16861:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83384,"mutability":"mutable","name":"operatorRewards","nameLocation":"16943:15:169","nodeType":"VariableDeclaration","scope":83391,"src":"16935:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83383,"name":"address","nodeType":"ElementaryTypeName","src":"16935:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83386,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"16976:18:169","nodeType":"VariableDeclaration","scope":83391,"src":"16968:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83385,"name":"address","nodeType":"ElementaryTypeName","src":"16968:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83388,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"17012:17:169","nodeType":"VariableDeclaration","scope":83391,"src":"17004:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83387,"name":"address","nodeType":"ElementaryTypeName","src":"17004:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83390,"mutability":"mutable","name":"vetoResolver","nameLocation":"17047:12:169","nodeType":"VariableDeclaration","scope":83391,"src":"17039:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83389,"name":"address","nodeType":"ElementaryTypeName","src":"17039:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16637:18:169","scope":84267,"visibility":"public"},{"id":83395,"nodeType":"EnumDefinition","src":"17139:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83392,"nodeType":"StructuredDocumentation","src":"17072:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":83393,"name":"FROST","nameLocation":"17168:5:169","nodeType":"EnumValue","src":"17168:5:169"},{"id":83394,"name":"ECDSA","nameLocation":"17183:5:169","nodeType":"EnumValue","src":"17183:5:169"}],"name":"SignatureType","nameLocation":"17144:13:169"},{"id":83417,"nodeType":"FunctionDefinition","src":"17484:260:169","nodes":[],"body":{"id":83416,"nodeType":"Block","src":"17645:99:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83410,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83398,"src":"17689:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83411,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83400,"src":"17707:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83412,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83402,"src":"17714:21:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83408,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17672:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17676:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"17672:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17672:64:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83407,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17662:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17662:75:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83406,"id":83415,"nodeType":"Return","src":"17655:82:169"}]},"documentation":{"id":83396,"nodeType":"StructuredDocumentation","src":"17200:279:169","text":" @dev Computes the hash of `ChainCommitment`.\n @param _transitionsHash The hash of the transitions in the chain commitment.\n @param _head The head of the chain commitment.\n @param _lastAdvancedEthBlock The latest folded-in Ethereum block hash."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"17493:19:169","parameters":{"id":83403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83398,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17521:16:169","nodeType":"VariableDeclaration","scope":83417,"src":"17513:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17513:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83400,"mutability":"mutable","name":"_head","nameLocation":"17547:5:169","nodeType":"VariableDeclaration","scope":83417,"src":"17539:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17539:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83402,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17562:21:169","nodeType":"VariableDeclaration","scope":83417,"src":"17554:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17554:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17512:72:169"},"returnParameters":{"id":83406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83417,"src":"17632:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17632:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17631:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83434,"nodeType":"FunctionDefinition","src":"17913:336:169","nodes":[],"body":{"id":83433,"nodeType":"Block","src":"18001:248:169","nodes":[],"statements":[{"assignments":[83428],"declarations":[{"constant":false,"id":83428,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"18019:19:169","nodeType":"VariableDeclaration","scope":83433,"src":"18011:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18011:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83429,"nodeType":"VariableDeclarationStatement","src":"18011:27:169"},{"AST":{"nativeSrc":"18073:134:169","nodeType":"YulBlock","src":"18073:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18094:4:169","nodeType":"YulLiteral","src":"18094:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"18100:6:169","nodeType":"YulIdentifier","src":"18100:6:169"}],"functionName":{"name":"mstore","nativeSrc":"18087:6:169","nodeType":"YulIdentifier","src":"18087:6:169"},"nativeSrc":"18087:20:169","nodeType":"YulFunctionCall","src":"18087:20:169"},"nativeSrc":"18087:20:169","nodeType":"YulExpressionStatement","src":"18087:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18128:4:169","nodeType":"YulLiteral","src":"18128:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"18134:5:169","nodeType":"YulIdentifier","src":"18134:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"18120:7:169","nodeType":"YulIdentifier","src":"18120:7:169"},"nativeSrc":"18120:20:169","nodeType":"YulFunctionCall","src":"18120:20:169"},"nativeSrc":"18120:20:169","nodeType":"YulExpressionStatement","src":"18120:20:169"},{"nativeSrc":"18153:44:169","nodeType":"YulAssignment","src":"18153:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"18186:4:169","nodeType":"YulLiteral","src":"18186:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18192:4:169","nodeType":"YulLiteral","src":"18192:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18176:9:169","nodeType":"YulIdentifier","src":"18176:9:169"},"nativeSrc":"18176:21:169","nodeType":"YulFunctionCall","src":"18176:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"18153:19:169","nodeType":"YulIdentifier","src":"18153:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83428,"isOffset":false,"isSlot":false,"src":"18153:19:169","valueSize":1},{"declaration":83420,"isOffset":false,"isSlot":false,"src":"18100:6:169","valueSize":1},{"declaration":83422,"isOffset":false,"isSlot":false,"src":"18134:5:169","valueSize":1}],"flags":["memory-safe"],"id":83430,"nodeType":"InlineAssembly","src":"18048:159:169"},{"expression":{"id":83431,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83428,"src":"18223:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83426,"id":83432,"nodeType":"Return","src":"18216:26:169"}]},"documentation":{"id":83418,"nodeType":"StructuredDocumentation","src":"17750:158:169","text":" @dev Computes the hash of `CodeCommitment`.\n @param codeId The ID of the code.\n @param valid The validation status of the code."},"implemented":true,"kind":"function","modifiers":[],"name":"codeCommitmentHash","nameLocation":"17922:18:169","parameters":{"id":83423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83420,"mutability":"mutable","name":"codeId","nameLocation":"17949:6:169","nodeType":"VariableDeclaration","scope":83434,"src":"17941:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17941:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83422,"mutability":"mutable","name":"valid","nameLocation":"17962:5:169","nodeType":"VariableDeclaration","scope":83434,"src":"17957:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83421,"name":"bool","nodeType":"ElementaryTypeName","src":"17957:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17940:28:169"},"returnParameters":{"id":83426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83434,"src":"17992:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17992:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17991:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83456,"nodeType":"FunctionDefinition","src":"18526:273:169","nodes":[],"body":{"id":83455,"nodeType":"Block","src":"18694:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83449,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83437,"src":"18738:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83450,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83439,"src":"18760:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83451,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83441,"src":"18780:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18721:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18725:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18721:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18721:70:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83446,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18711:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18711:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83445,"id":83454,"nodeType":"Return","src":"18704:88:169"}]},"documentation":{"id":83435,"nodeType":"StructuredDocumentation","src":"18255:266:169","text":" @dev Computes the hash of `RewardsCommitment`.\n @param _operatorRewardsHash The hash of the operator rewards.\n @param _stakerRewardsHash The hash of the staker rewards.\n @param _timestamp The timestamp for the rewards commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"rewardsCommitmentHash","nameLocation":"18535:21:169","parameters":{"id":83442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83437,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18565:20:169","nodeType":"VariableDeclaration","scope":83456,"src":"18557:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18557:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83439,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18595:18:169","nodeType":"VariableDeclaration","scope":83456,"src":"18587:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18587:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83441,"mutability":"mutable","name":"_timestamp","nameLocation":"18622:10:169","nodeType":"VariableDeclaration","scope":83456,"src":"18615:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83440,"name":"uint48","nodeType":"ElementaryTypeName","src":"18615:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18556:77:169"},"returnParameters":{"id":83445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83456,"src":"18681:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18681:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18680:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83484,"nodeType":"FunctionDefinition","src":"18930:425:169","nodes":[],"body":{"id":83483,"nodeType":"Block","src":"19041:314:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83468,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"19115:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19126:22:169","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83129,"src":"19115:33:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":83470,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"19166:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19177:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83132,"src":"19166:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19197:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":83058,"src":"19166:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83473,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"19216:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19227:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83132,"src":"19216:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19247:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"19216:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83476,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"19266:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19277:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83137,"src":"19266:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83478,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"19305:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19316:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"19305:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83466,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19081:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19085:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"19081:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19081:257:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83465,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19058:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19058:290:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83464,"id":83482,"nodeType":"Return","src":"19051:297:169"}]},"documentation":{"id":83457,"nodeType":"StructuredDocumentation","src":"18805:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18939:24:169","parameters":{"id":83461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83460,"mutability":"mutable","name":"commitment","nameLocation":"18997:10:169","nodeType":"VariableDeclaration","scope":83484,"src":"18964:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83459,"nodeType":"UserDefinedTypeName","pathNode":{"id":83458,"name":"Gear.ValidatorsCommitment","nameLocations":["18964:4:169","18969:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":83140,"src":"18964:25:169"},"referencedDeclaration":83140,"src":"18964:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18963:45:169"},"returnParameters":{"id":83464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83484,"src":"19032:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19032:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19031:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83521,"nodeType":"FunctionDefinition","src":"19968:697:169","nodes":[],"body":{"id":83520,"nodeType":"Block","src":"20305:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83509,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83487,"src":"20379:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83510,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83489,"src":"20403:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83511,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83491,"src":"20431:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83512,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83493,"src":"20468:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83513,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83495,"src":"20493:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83514,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83497,"src":"20531:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83515,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83499,"src":"20569:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83516,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83501,"src":"20609:25:169","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83507,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20345:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20349:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20345:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20345:303:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83506,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20322:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20322:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83505,"id":83519,"nodeType":"Return","src":"20315:343:169"}]},"documentation":{"id":83485,"nodeType":"StructuredDocumentation","src":"19361:602:169","text":" @dev Computes the hash of `BatchCommitment`.\n @param _block The hash of the block.\n @param _timestamp The timestamp for the batch commitment.\n @param _prevCommittedBlock The hash of the previous committed block.\n @param _expiry The expiry time for the batch commitment.\n @param _chainCommitmentHash The hash of the chain commitment.\n @param _codeCommitmentsHash The hash of the code commitments.\n @param _rewardsCommitmentHash The hash of the rewards commitment.\n @param _validatorsCommitmentHash The hash of the validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"batchCommitmentHash","nameLocation":"19977:19:169","parameters":{"id":83502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83487,"mutability":"mutable","name":"_block","nameLocation":"20014:6:169","nodeType":"VariableDeclaration","scope":83521,"src":"20006:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20006:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83489,"mutability":"mutable","name":"_timestamp","nameLocation":"20037:10:169","nodeType":"VariableDeclaration","scope":83521,"src":"20030:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83488,"name":"uint48","nodeType":"ElementaryTypeName","src":"20030:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83491,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"20065:19:169","nodeType":"VariableDeclaration","scope":83521,"src":"20057:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20057:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83493,"mutability":"mutable","name":"_expiry","nameLocation":"20100:7:169","nodeType":"VariableDeclaration","scope":83521,"src":"20094:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83492,"name":"uint8","nodeType":"ElementaryTypeName","src":"20094:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83495,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"20125:20:169","nodeType":"VariableDeclaration","scope":83521,"src":"20117:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20117:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83497,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"20163:20:169","nodeType":"VariableDeclaration","scope":83521,"src":"20155:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20155:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83499,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20201:22:169","nodeType":"VariableDeclaration","scope":83521,"src":"20193:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20193:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83501,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20241:25:169","nodeType":"VariableDeclaration","scope":83521,"src":"20233:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20233:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19996:276:169"},"returnParameters":{"id":83505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83521,"src":"20296:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20296:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20295:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83553,"nodeType":"FunctionDefinition","src":"20796:407:169","nodes":[],"body":{"id":83552,"nodeType":"Block","src":"20873:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83533,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"20947:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20955:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"20947:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83535,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"20975:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20983:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"20975:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83537,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"21012:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21020:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83244,"src":"21012:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83539,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"21045:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21053:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"21045:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83541,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"21076:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21084:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"21076:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21097:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83287,"src":"21076:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83544,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"21117:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21125:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"21117:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21138:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83290,"src":"21117:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83547,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83525,"src":"21160:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21168:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"21160:12:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83531,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20913:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20917:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20913:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20913:273:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83530,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20890:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20890:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83529,"id":83551,"nodeType":"Return","src":"20883:313:169"}]},"documentation":{"id":83522,"nodeType":"StructuredDocumentation","src":"20671:120:169","text":" @dev Computes the hash of `Message`.\n @param message The message for which to compute the hash."},"implemented":true,"kind":"function","modifiers":[],"name":"messageHash","nameLocation":"20805:11:169","parameters":{"id":83526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83525,"mutability":"mutable","name":"message","nameLocation":"20832:7:169","nodeType":"VariableDeclaration","scope":83553,"src":"20817:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83524,"nodeType":"UserDefinedTypeName","pathNode":{"id":83523,"name":"Message","nameLocations":["20817:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83255,"src":"20817:7:169"},"referencedDeclaration":83255,"src":"20817:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20816:24:169"},"returnParameters":{"id":83529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83553,"src":"20864:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20864:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20863:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83575,"nodeType":"FunctionDefinition","src":"21410:199:169","nodes":[],"body":{"id":83574,"nodeType":"Block","src":"21524:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83568,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83556,"src":"21568:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83569,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83558,"src":"21580:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83570,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83560,"src":"21594:6:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":83566,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21551:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21555:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21551:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21551:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83565,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21541:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21541:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83564,"id":83573,"nodeType":"Return","src":"21534:68:169"}]},"documentation":{"id":83554,"nodeType":"StructuredDocumentation","src":"21209:196:169","text":" @dev Computes the hash of `ValueClaim`.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimHash","nameLocation":"21419:14:169","parameters":{"id":83561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83556,"mutability":"mutable","name":"_messageId","nameLocation":"21442:10:169","nodeType":"VariableDeclaration","scope":83575,"src":"21434:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21434:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83558,"mutability":"mutable","name":"_destination","nameLocation":"21462:12:169","nodeType":"VariableDeclaration","scope":83575,"src":"21454:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83557,"name":"address","nodeType":"ElementaryTypeName","src":"21454:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83560,"mutability":"mutable","name":"_value","nameLocation":"21484:6:169","nodeType":"VariableDeclaration","scope":83575,"src":"21476:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83559,"name":"uint128","nodeType":"ElementaryTypeName","src":"21476:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21433:58:169"},"returnParameters":{"id":83564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83575,"src":"21515:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21515:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21514:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83618,"nodeType":"FunctionDefinition","src":"22249:788:169","nodes":[],"body":{"id":83617,"nodeType":"Block","src":"22630:407:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83604,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83578,"src":"22704:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83605,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83580,"src":"22727:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83606,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83582,"src":"22757:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83607,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83584,"src":"22781:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83608,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83586,"src":"22808:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83609,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83588,"src":"22840:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83610,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83590,"src":"22884:15:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83611,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83592,"src":"22917:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83612,"name":"eventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83594,"src":"22953:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83613,"name":"ethEventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83596,"src":"22987:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83602,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22670:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22674:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"22670:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22670:350:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83601,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22647:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22647:383:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83600,"id":83616,"nodeType":"Return","src":"22640:390:169"}]},"documentation":{"id":83576,"nodeType":"StructuredDocumentation","src":"21615:629:169","text":" @dev Computes the hash of `StateTransition`.\n @param actor The actor address.\n @param newStateHash The hash of the new state.\n @param exited The exit status.\n @param inheritor The inheritor address.\n @param valueToReceive The value to receive.\n @param valueToReceiveNegativeSign The sign of the value to receive.\n @param valueClaimsHash The hash of the value claims.\n @param messagesHashesHash The hash of the messages hashes.\n @param eventsHashesHash The hash of the events hashes.\n @param ethEventsHashesHash The hash of the Ethereum events hashes."},"implemented":true,"kind":"function","modifiers":[],"name":"stateTransitionHash","nameLocation":"22258:19:169","parameters":{"id":83597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83578,"mutability":"mutable","name":"actor","nameLocation":"22295:5:169","nodeType":"VariableDeclaration","scope":83618,"src":"22287:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83577,"name":"address","nodeType":"ElementaryTypeName","src":"22287:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83580,"mutability":"mutable","name":"newStateHash","nameLocation":"22318:12:169","nodeType":"VariableDeclaration","scope":83618,"src":"22310:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22310:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83582,"mutability":"mutable","name":"exited","nameLocation":"22345:6:169","nodeType":"VariableDeclaration","scope":83618,"src":"22340:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83581,"name":"bool","nodeType":"ElementaryTypeName","src":"22340:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83584,"mutability":"mutable","name":"inheritor","nameLocation":"22369:9:169","nodeType":"VariableDeclaration","scope":83618,"src":"22361:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83583,"name":"address","nodeType":"ElementaryTypeName","src":"22361:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83586,"mutability":"mutable","name":"valueToReceive","nameLocation":"22396:14:169","nodeType":"VariableDeclaration","scope":83618,"src":"22388:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83585,"name":"uint128","nodeType":"ElementaryTypeName","src":"22388:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83588,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22425:26:169","nodeType":"VariableDeclaration","scope":83618,"src":"22420:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83587,"name":"bool","nodeType":"ElementaryTypeName","src":"22420:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83590,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22469:15:169","nodeType":"VariableDeclaration","scope":83618,"src":"22461:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22461:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83592,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22502:18:169","nodeType":"VariableDeclaration","scope":83618,"src":"22494:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22494:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83594,"mutability":"mutable","name":"eventsHashesHash","nameLocation":"22538:16:169","nodeType":"VariableDeclaration","scope":83618,"src":"22530:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83593,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22530:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83596,"mutability":"mutable","name":"ethEventsHashesHash","nameLocation":"22572:19:169","nodeType":"VariableDeclaration","scope":83618,"src":"22564:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22564:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22277:320:169"},"returnParameters":{"id":83600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83618,"src":"22621:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22621:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22620:9:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83683,"nodeType":"FunctionDefinition","src":"23311:532:169","nodes":[],"body":{"id":83682,"nodeType":"Block","src":"23410:433:169","nodes":[],"statements":[{"assignments":[83629],"declarations":[{"constant":false,"id":83629,"mutability":"mutable","name":"start","nameLocation":"23428:5:169","nodeType":"VariableDeclaration","scope":83682,"src":"23420:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83628,"name":"uint256","nodeType":"ElementaryTypeName","src":"23420:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83634,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83630,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23436:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:6:169","memberName":"number","nodeType":"MemberAccess","src":"23436:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23451:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23436:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23420:32:169"},{"assignments":[83636],"declarations":[{"constant":false,"id":83636,"mutability":"mutable","name":"end","nameLocation":"23470:3:169","nodeType":"VariableDeclaration","scope":83682,"src":"23462:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83635,"name":"uint256","nodeType":"ElementaryTypeName","src":"23462:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83647,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83637,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83623,"src":"23476:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83638,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23486:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23492:6:169","memberName":"number","nodeType":"MemberAccess","src":"23486:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23476:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83642,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23505:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23511:6:169","memberName":"number","nodeType":"MemberAccess","src":"23505:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83644,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83623,"src":"23520:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23505:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23476:50:169","trueExpression":{"hexValue":"30","id":83641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23501:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23462:64:169"},{"body":{"id":83678,"nodeType":"Block","src":"23571:243:169","statements":[{"assignments":[83656],"declarations":[{"constant":false,"id":83656,"mutability":"mutable","name":"ret","nameLocation":"23593:3:169","nodeType":"VariableDeclaration","scope":83678,"src":"23585:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23585:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83660,"initialValue":{"arguments":[{"id":83658,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"23609:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83657,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23599:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23599:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23585:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83661,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83656,"src":"23629:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83662,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83621,"src":"23636:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23629:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83667,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83656,"src":"23696:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23703:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23696:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83672,"nodeType":"IfStatement","src":"23692:52:169","trueBody":{"id":83671,"nodeType":"Block","src":"23706:38:169","statements":[{"id":83670,"nodeType":"Break","src":"23724:5:169"}]}},"id":83673,"nodeType":"IfStatement","src":"23625:119:169","trueBody":{"id":83666,"nodeType":"Block","src":"23642:44:169","statements":[{"expression":{"hexValue":"74727565","id":83664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23667:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83627,"id":83665,"nodeType":"Return","src":"23660:11:169"}]}},{"id":83677,"nodeType":"UncheckedBlock","src":"23758:46:169","statements":[{"expression":{"id":83675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"23786:3:169","subExpression":{"id":83674,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"23786:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83676,"nodeType":"ExpressionStatement","src":"23786:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"23560:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83653,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83636,"src":"23565:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23560:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83679,"initializationExpression":{"assignments":[83649],"declarations":[{"constant":false,"id":83649,"mutability":"mutable","name":"i","nameLocation":"23549:1:169","nodeType":"VariableDeclaration","scope":83679,"src":"23541:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83648,"name":"uint256","nodeType":"ElementaryTypeName","src":"23541:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83651,"initialValue":{"id":83650,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83629,"src":"23553:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23541:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23536:278:169"},{"expression":{"hexValue":"66616c7365","id":83680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23831:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83627,"id":83681,"nodeType":"Return","src":"23824:12:169"}]},"documentation":{"id":83619,"nodeType":"StructuredDocumentation","src":"23043:263:169","text":" @dev Checks if block is predecessor of the current block.\n @param hash The hash of the block to check.\n @param expiry The expiry time for the block.\n @return isPredecessor `true` if the block is predecessor, `false` otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"blockIsPredecessor","nameLocation":"23320:18:169","parameters":{"id":83624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83621,"mutability":"mutable","name":"hash","nameLocation":"23347:4:169","nodeType":"VariableDeclaration","scope":83683,"src":"23339:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23339:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83623,"mutability":"mutable","name":"expiry","nameLocation":"23359:6:169","nodeType":"VariableDeclaration","scope":83683,"src":"23353:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83622,"name":"uint8","nodeType":"ElementaryTypeName","src":"23353:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"23338:28:169"},"returnParameters":{"id":83627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83626,"mutability":"mutable","name":"isPredecessor","nameLocation":"23395:13:169","nodeType":"VariableDeclaration","scope":83683,"src":"23390:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83625,"name":"bool","nodeType":"ElementaryTypeName","src":"23390:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23389:20:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83696,"nodeType":"FunctionDefinition","src":"23988:222:169","nodes":[],"body":{"id":83695,"nodeType":"Block","src":"24097:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83691,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83022,"src":"24146:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83692,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83034,"src":"24185:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83690,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83226,"src":"24114:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83226_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24135:9:169","24169:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"24114:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83689,"id":83694,"nodeType":"Return","src":"24107:96:169"}]},"documentation":{"id":83684,"nodeType":"StructuredDocumentation","src":"23849:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"23997:26:169","parameters":{"id":83685,"nodeType":"ParameterList","parameters":[],"src":"24023:2:169"},"returnParameters":{"id":83689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83688,"mutability":"mutable","name":"computationSettings","nameLocation":"24076:19:169","nodeType":"VariableDeclaration","scope":83696,"src":"24049:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83687,"nodeType":"UserDefinedTypeName","pathNode":{"id":83686,"name":"ComputationSettings","nameLocations":["24049:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83226,"src":"24049:19:169"},"referencedDeclaration":83226,"src":"24049:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"24048:48:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83719,"nodeType":"FunctionDefinition","src":"24336:229:169","nodes":[],"body":{"id":83718,"nodeType":"Block","src":"24423:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24484:1:169","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":83705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24476:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24476:7:169","typeDescriptions":{}}},"id":83707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83710,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24514:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24520:6:169","memberName":"number","nodeType":"MemberAccess","src":"24514:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83708,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"24496:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24505:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"24496:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24496:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83713,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"24540:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24545:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"24540:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24540:16:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":83703,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83234,"src":"24452:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83234_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24470:4:169","24488:6:169","24529:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24452:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83702,"id":83717,"nodeType":"Return","src":"24433:125:169"}]},"documentation":{"id":83697,"nodeType":"StructuredDocumentation","src":"24216:115:169","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"24345:10:169","parameters":{"id":83698,"nodeType":"ParameterList","parameters":[],"src":"24355:2:169"},"returnParameters":{"id":83702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83701,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"24405:16:169","nodeType":"VariableDeclaration","scope":83719,"src":"24381:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83700,"nodeType":"UserDefinedTypeName","pathNode":{"id":83699,"name":"GenesisBlockInfo","nameLocations":["24381:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":83234,"src":"24381:16:169"},"referencedDeclaration":83234,"src":"24381:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"24380:42:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83969,"nodeType":"FunctionDefinition","src":"25056:3813:169","nodes":[],"body":{"id":83968,"nodeType":"Block","src":"25319:3550:169","nodes":[],"statements":[{"assignments":[83741],"declarations":[{"constant":false,"id":83741,"mutability":"mutable","name":"eraStarted","nameLocation":"25391:10:169","nodeType":"VariableDeclaration","scope":83968,"src":"25383:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83740,"name":"uint256","nodeType":"ElementaryTypeName","src":"25383:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83747,"initialValue":{"arguments":[{"id":83743,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"25417:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83744,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25425:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25431:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25425:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83742,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84202,"src":"25404:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25404:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25383:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83748,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"25455:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83749,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83741,"src":"25460:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25455:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83751,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25474:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25480:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25474:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83753,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83741,"src":"25492:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83754,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"25505:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25512:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"25505:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25522:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83336,"src":"25505:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25492:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25474:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25455:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83801,"nodeType":"Block","src":"25898:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83784,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"25920:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83785,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25926:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25932:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25926:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25920:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83788,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83043,"src":"25943:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25943:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25912:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25912:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83791,"nodeType":"ExpressionStatement","src":"25912:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83792,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"25982:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83793,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83741,"src":"25987:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25982:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83800,"nodeType":"IfStatement","src":"25978:69:169","trueBody":{"id":83799,"nodeType":"Block","src":"25999:48:169","statements":[{"expression":{"id":83797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83795,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"26017:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83796,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83741,"src":"26022:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26017:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83798,"nodeType":"ExpressionStatement","src":"26017:15:169"}]}}]},"id":83802,"nodeType":"IfStatement","src":"25451:676:169","trueBody":{"id":83782,"nodeType":"Block","src":"25539:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83761,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"25561:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83762,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"25567:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25574:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"25567:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25587:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"25567:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25561:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83766,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83037,"src":"25598:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25598:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25553:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83769,"nodeType":"ExpressionStatement","src":"25553:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83771,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"25646:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83772,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"25651:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25658:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"25651:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25668:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83332,"src":"25651:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25646:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83776,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83741,"src":"25675:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25646:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83778,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83040,"src":"25687:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25687:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25638:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25638:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83781,"nodeType":"ExpressionStatement","src":"25638:81:169"}]}},{"assignments":[83805],"declarations":[{"constant":false,"id":83805,"mutability":"mutable","name":"validators","nameLocation":"26208:10:169","nodeType":"VariableDeclaration","scope":83968,"src":"26189:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83804,"nodeType":"UserDefinedTypeName","pathNode":{"id":83803,"name":"Validators","nameLocations":["26189:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"26189:10:169"},"referencedDeclaration":83082,"src":"26189:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83810,"initialValue":{"arguments":[{"id":83807,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"26234:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83808,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83735,"src":"26242:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83806,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84041,"src":"26221:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26221:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"26189:56:169"},{"assignments":[83812],"declarations":[{"constant":false,"id":83812,"mutability":"mutable","name":"_messageHash","nameLocation":"26263:12:169","nodeType":"VariableDeclaration","scope":83968,"src":"26255:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83811,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26255:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83820,"initialValue":{"arguments":[{"id":83818,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83727,"src":"26324:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26286:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84267","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84267","typeString":"library Gear"}],"id":83814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26278:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83813,"name":"address","nodeType":"ElementaryTypeName","src":"26278:7:169","typeDescriptions":{}}},"id":83816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26278:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26292:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"26278:45:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":83819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26278:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26255:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"},"id":83824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83821,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83730,"src":"26349:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83822,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83395,"src":"26367:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83395_$","typeString":"type(enum Gear.SignatureType)"}},"id":83823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26381:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83393,"src":"26367:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},"src":"26349:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"},"id":83877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83874,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83730,"src":"27545:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83875,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83395,"src":"27563:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83395_$","typeString":"type(enum Gear.SignatureType)"}},"id":83876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27577:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83394,"src":"27563:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},"src":"27545:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83964,"nodeType":"IfStatement","src":"27541:1299:169","trueBody":{"id":83963,"nodeType":"Block","src":"27584:1256:169","statements":[{"assignments":[83879],"declarations":[{"constant":false,"id":83879,"mutability":"mutable","name":"threshold","nameLocation":"27606:9:169","nodeType":"VariableDeclaration","scope":83963,"src":"27598:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83878,"name":"uint256","nodeType":"ElementaryTypeName","src":"27598:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83891,"initialValue":{"arguments":[{"expression":{"expression":{"id":83881,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"27655:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27666:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"27655:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27671:6:169","memberName":"length","nodeType":"MemberAccess","src":"27655:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83884,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"27695:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27702:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"27695:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27721:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83340,"src":"27695:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83887,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83723,"src":"27757:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27764:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"27757:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27783:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83342,"src":"27757:46:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83880,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84154,"src":"27618:19:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":83890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27618:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27598:219:169"},{"assignments":[83893],"declarations":[{"constant":false,"id":83893,"mutability":"mutable","name":"validSignatures","nameLocation":"27840:15:169","nodeType":"VariableDeclaration","scope":83963,"src":"27832:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83892,"name":"uint256","nodeType":"ElementaryTypeName","src":"27832:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83895,"initialValue":{"hexValue":"30","id":83894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27858:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27832:27:169"},{"body":{"id":83959,"nodeType":"Block","src":"27923:880:169","statements":[{"assignments":[83908],"declarations":[{"constant":false,"id":83908,"mutability":"mutable","name":"signature","nameLocation":"27956:9:169","nodeType":"VariableDeclaration","scope":83959,"src":"27941:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":83907,"name":"bytes","nodeType":"ElementaryTypeName","src":"27941:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83912,"initialValue":{"baseExpression":{"id":83909,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83733,"src":"27968:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83911,"indexExpression":{"id":83910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83897,"src":"27980:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27968:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27941:41:169"},{"assignments":[83914],"declarations":[{"constant":false,"id":83914,"mutability":"mutable","name":"validator","nameLocation":"28009:9:169","nodeType":"VariableDeclaration","scope":83959,"src":"28001:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83913,"name":"address","nodeType":"ElementaryTypeName","src":"28001:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83919,"initialValue":{"arguments":[{"id":83917,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83908,"src":"28042:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":83915,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83812,"src":"28021:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28034:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"28021:20:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":83918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28021:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"28001:51:169"},{"condition":{"baseExpression":{"expression":{"id":83920,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"28075:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28086:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"28075:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83923,"indexExpression":{"id":83922,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83914,"src":"28090:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28075:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83958,"nodeType":"IfStatement","src":"28071:718:169","trueBody":{"id":83957,"nodeType":"Block","src":"28102:687:169","statements":[{"assignments":[83926],"declarations":[{"constant":false,"id":83926,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"28327:30:169","nodeType":"VariableDeclaration","scope":83957,"src":"28319:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28319:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev SECURITY:\n We use transient storage to prevent multiple signatures from the same validator.","id":83931,"initialValue":{"arguments":[{"id":83929,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83914,"src":"28397:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":83927,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83725,"src":"28360:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28383:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"28360:36:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,address) pure returns (bytes32)"}},"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28360:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28319:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83932,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83926,"src":"28434:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28465:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28434:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28434:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28477:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"28434:48:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$50513_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":83936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28434:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83947,"nodeType":"Block","src":"28549:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":83944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28625:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83939,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83926,"src":"28575:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28606:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28575:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28575:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28618:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"28575:49:169","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$50513_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":83945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28575:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83946,"nodeType":"ExpressionStatement","src":"28575:55:169"}]},"id":83948,"nodeType":"IfStatement","src":"28430:223:169","trueBody":{"id":83938,"nodeType":"Block","src":"28486:57:169","statements":[{"id":83937,"nodeType":"Continue","src":"28512:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28679:17:169","subExpression":{"id":83949,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83893,"src":"28681:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83951,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"28700:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28679:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83956,"nodeType":"IfStatement","src":"28675:96:169","trueBody":{"id":83955,"nodeType":"Block","src":"28711:60:169","statements":[{"expression":{"hexValue":"74727565","id":83953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28744:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83739,"id":83954,"nodeType":"Return","src":"28737:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83897,"src":"27894:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83901,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83733,"src":"27898:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27910:6:169","memberName":"length","nodeType":"MemberAccess","src":"27898:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27894:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83960,"initializationExpression":{"assignments":[83897],"declarations":[{"constant":false,"id":83897,"mutability":"mutable","name":"i","nameLocation":"27887:1:169","nodeType":"VariableDeclaration","scope":83960,"src":"27879:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83896,"name":"uint256","nodeType":"ElementaryTypeName","src":"27879:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83899,"initialValue":{"hexValue":"30","id":83898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27891:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27879:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27918:3:169","subExpression":{"id":83904,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83897,"src":"27918:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83906,"nodeType":"ExpressionStatement","src":"27918:3:169"},"nodeType":"ForStatement","src":"27874:929:169"},{"expression":{"hexValue":"66616c7365","id":83961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28824:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83739,"id":83962,"nodeType":"Return","src":"28817:12:169"}]}},"id":83965,"nodeType":"IfStatement","src":"26345:2495:169","trueBody":{"id":83873,"nodeType":"Block","src":"26388:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83826,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83733,"src":"26410:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26422:6:169","memberName":"length","nodeType":"MemberAccess","src":"26410:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26432:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26410:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83830,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83046,"src":"26435:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26435:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26402:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26402:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83833,"nodeType":"ExpressionStatement","src":"26402:62:169"},{"assignments":[83835],"declarations":[{"constant":false,"id":83835,"mutability":"mutable","name":"_signature","nameLocation":"26492:10:169","nodeType":"VariableDeclaration","scope":83873,"src":"26479:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83834,"name":"bytes","nodeType":"ElementaryTypeName","src":"26479:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83839,"initialValue":{"baseExpression":{"id":83836,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83733,"src":"26505:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83838,"indexExpression":{"hexValue":"30","id":83837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26517:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26505:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26479:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83841,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83835,"src":"26541:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":83842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26552:6:169","memberName":"length","nodeType":"MemberAccess","src":"26541:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":83843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26562:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26541:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83845,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83049,"src":"26566:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26566:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83840,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26533:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26533:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83848,"nodeType":"ExpressionStatement","src":"26533:63:169"},{"assignments":[83850],"declarations":[{"constant":false,"id":83850,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"26619:21:169","nodeType":"VariableDeclaration","scope":83873,"src":"26611:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83849,"name":"uint256","nodeType":"ElementaryTypeName","src":"26611:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83851,"nodeType":"VariableDeclarationStatement","src":"26611:29:169"},{"assignments":[83853],"declarations":[{"constant":false,"id":83853,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"26662:21:169","nodeType":"VariableDeclaration","scope":83873,"src":"26654:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83852,"name":"uint256","nodeType":"ElementaryTypeName","src":"26654:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83854,"nodeType":"VariableDeclarationStatement","src":"26654:29:169"},{"assignments":[83856],"declarations":[{"constant":false,"id":83856,"mutability":"mutable","name":"_signatureZ","nameLocation":"26705:11:169","nodeType":"VariableDeclaration","scope":83873,"src":"26697:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83855,"name":"uint256","nodeType":"ElementaryTypeName","src":"26697:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83857,"nodeType":"VariableDeclarationStatement","src":"26697:19:169"},{"AST":{"nativeSrc":"26756:215:169","nodeType":"YulBlock","src":"26756:215:169","statements":[{"nativeSrc":"26774:53:169","nodeType":"YulAssignment","src":"26774:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26809:10:169","nodeType":"YulIdentifier","src":"26809:10:169"},{"kind":"number","nativeSrc":"26821:4:169","nodeType":"YulLiteral","src":"26821:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26805:3:169","nodeType":"YulIdentifier","src":"26805:3:169"},"nativeSrc":"26805:21:169","nodeType":"YulFunctionCall","src":"26805:21:169"}],"functionName":{"name":"mload","nativeSrc":"26799:5:169","nodeType":"YulIdentifier","src":"26799:5:169"},"nativeSrc":"26799:28:169","nodeType":"YulFunctionCall","src":"26799:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"26774:21:169","nodeType":"YulIdentifier","src":"26774:21:169"}]},{"nativeSrc":"26844:53:169","nodeType":"YulAssignment","src":"26844:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26879:10:169","nodeType":"YulIdentifier","src":"26879:10:169"},{"kind":"number","nativeSrc":"26891:4:169","nodeType":"YulLiteral","src":"26891:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26875:3:169","nodeType":"YulIdentifier","src":"26875:3:169"},"nativeSrc":"26875:21:169","nodeType":"YulFunctionCall","src":"26875:21:169"}],"functionName":{"name":"mload","nativeSrc":"26869:5:169","nodeType":"YulIdentifier","src":"26869:5:169"},"nativeSrc":"26869:28:169","nodeType":"YulFunctionCall","src":"26869:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"26844:21:169","nodeType":"YulIdentifier","src":"26844:21:169"}]},{"nativeSrc":"26914:43:169","nodeType":"YulAssignment","src":"26914:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26939:10:169","nodeType":"YulIdentifier","src":"26939:10:169"},{"kind":"number","nativeSrc":"26951:4:169","nodeType":"YulLiteral","src":"26951:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26935:3:169","nodeType":"YulIdentifier","src":"26935:3:169"},"nativeSrc":"26935:21:169","nodeType":"YulFunctionCall","src":"26935:21:169"}],"functionName":{"name":"mload","nativeSrc":"26929:5:169","nodeType":"YulIdentifier","src":"26929:5:169"},"nativeSrc":"26929:28:169","nodeType":"YulFunctionCall","src":"26929:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"26914:11:169","nodeType":"YulIdentifier","src":"26914:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83835,"isOffset":false,"isSlot":false,"src":"26809:10:169","valueSize":1},{"declaration":83835,"isOffset":false,"isSlot":false,"src":"26879:10:169","valueSize":1},{"declaration":83835,"isOffset":false,"isSlot":false,"src":"26939:10:169","valueSize":1},{"declaration":83850,"isOffset":false,"isSlot":false,"src":"26774:21:169","valueSize":1},{"declaration":83853,"isOffset":false,"isSlot":false,"src":"26844:21:169","valueSize":1},{"declaration":83856,"isOffset":false,"isSlot":false,"src":"26914:11:169","valueSize":1}],"flags":["memory-safe"],"id":83858,"nodeType":"InlineAssembly","src":"26731:240:169"},{"documentation":" @dev SECURITY: `FROST.isValidPublicKey(validators.aggregatedPublicKey.x, validators.aggregatedPublicKey.y)` is not called here,\n because it is already checked in `Router._resetValidators(...)`.","expression":{"arguments":[{"expression":{"expression":{"id":83861,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"27291:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27302:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"27291:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27322:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":83058,"src":"27291:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83864,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"27341:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27352:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"27341:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27372:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"27341:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83867,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83850,"src":"27391:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83868,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83853,"src":"27430:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83869,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83856,"src":"27469:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83870,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83812,"src":"27498:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83859,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"27252:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":83860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27258:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"27252:21:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,bytes32) view returns (bool)"}},"id":83871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27252:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83739,"id":83872,"nodeType":"Return","src":"27245:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":83966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28857:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83739,"id":83967,"nodeType":"Return","src":"28850:12:169"}]},"documentation":{"id":83720,"nodeType":"StructuredDocumentation","src":"24571:480:169","text":" @dev Validates signatures of the given data hash at the given timestamp.\n @param router The router storage.\n @param routerTransientStorage The router transient storage slot for this validation.\n @param _dataHash The hash of the data to validate signatures for.\n @param _signatureType The type of signatures to validate.\n @param _signatures The signatures to validate.\n @param ts The timestamp at which to validate signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"validateSignaturesAt","nameLocation":"25065:20:169","parameters":{"id":83736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83723,"mutability":"mutable","name":"router","nameLocation":"25119:6:169","nodeType":"VariableDeclaration","scope":83969,"src":"25095:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83722,"nodeType":"UserDefinedTypeName","pathNode":{"id":83721,"name":"IRouter.Storage","nameLocations":["25095:7:169","25103:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"25095:15:169"},"referencedDeclaration":74495,"src":"25095:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83725,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"25143:22:169","nodeType":"VariableDeclaration","scope":83969,"src":"25135:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25135:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83727,"mutability":"mutable","name":"_dataHash","nameLocation":"25183:9:169","nodeType":"VariableDeclaration","scope":83969,"src":"25175:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25175:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83730,"mutability":"mutable","name":"_signatureType","nameLocation":"25216:14:169","nodeType":"VariableDeclaration","scope":83969,"src":"25202:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"},"typeName":{"id":83729,"nodeType":"UserDefinedTypeName","pathNode":{"id":83728,"name":"SignatureType","nameLocations":["25202:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83395,"src":"25202:13:169"},"referencedDeclaration":83395,"src":"25202:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83733,"mutability":"mutable","name":"_signatures","nameLocation":"25257:11:169","nodeType":"VariableDeclaration","scope":83969,"src":"25240:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83731,"name":"bytes","nodeType":"ElementaryTypeName","src":"25240:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83732,"nodeType":"ArrayTypeName","src":"25240:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83735,"mutability":"mutable","name":"ts","nameLocation":"25286:2:169","nodeType":"VariableDeclaration","scope":83969,"src":"25278:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83734,"name":"uint256","nodeType":"ElementaryTypeName","src":"25278:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25085:209:169"},"returnParameters":{"id":83739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83969,"src":"25313:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83737,"name":"bool","nodeType":"ElementaryTypeName","src":"25313:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25312:6:169"},"scope":84267,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":83986,"nodeType":"FunctionDefinition","src":"28988:166:169","nodes":[],"body":{"id":83985,"nodeType":"Block","src":"29093:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83980,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"29123:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83981,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29131:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29137:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"29131:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83979,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84041,"src":"29110:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29110:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":83978,"id":83984,"nodeType":"Return","src":"29103:44:169"}]},"documentation":{"id":83970,"nodeType":"StructuredDocumentation","src":"28875:108:169","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"28997:20:169","parameters":{"id":83974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83973,"mutability":"mutable","name":"router","nameLocation":"29042:6:169","nodeType":"VariableDeclaration","scope":83986,"src":"29018:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83972,"nodeType":"UserDefinedTypeName","pathNode":{"id":83971,"name":"IRouter.Storage","nameLocations":["29018:7:169","29026:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"29018:15:169"},"referencedDeclaration":74495,"src":"29018:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"29017:32:169"},"returnParameters":{"id":83978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83986,"src":"29073:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83976,"nodeType":"UserDefinedTypeName","pathNode":{"id":83975,"name":"Validators","nameLocations":["29073:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"29073:10:169"},"referencedDeclaration":83082,"src":"29073:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29072:20:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84013,"nodeType":"FunctionDefinition","src":"29360:322:169","nodes":[],"body":{"id":84012,"nodeType":"Block","src":"29466:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83997,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"29506:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83998,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29514:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29520:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"29514:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83996,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84108,"src":"29480:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":84000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29480:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84010,"nodeType":"Block","src":"29607:69:169","statements":[{"expression":{"expression":{"expression":{"id":84006,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"29628:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29635:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"29628:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29654:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83348,"src":"29628:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83995,"id":84009,"nodeType":"Return","src":"29621:44:169"}]},"id":84011,"nodeType":"IfStatement","src":"29476:200:169","trueBody":{"id":84005,"nodeType":"Block","src":"29532:69:169","statements":[{"expression":{"expression":{"expression":{"id":84001,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"29553:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29560:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"29553:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29579:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83345,"src":"29553:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83995,"id":84004,"nodeType":"Return","src":"29546:44:169"}]}}]},"documentation":{"id":83987,"nodeType":"StructuredDocumentation","src":"29160:195:169","text":" @dev Returns previous era validators, if there is no previous era,\n then returns free validators slot, which must be zeroed.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"previousEraValidators","nameLocation":"29369:21:169","parameters":{"id":83991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83990,"mutability":"mutable","name":"router","nameLocation":"29415:6:169","nodeType":"VariableDeclaration","scope":84013,"src":"29391:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83989,"nodeType":"UserDefinedTypeName","pathNode":{"id":83988,"name":"IRouter.Storage","nameLocations":["29391:7:169","29399:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"29391:15:169"},"referencedDeclaration":74495,"src":"29391:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"29390:32:169"},"returnParameters":{"id":83995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84013,"src":"29446:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83993,"nodeType":"UserDefinedTypeName","pathNode":{"id":83992,"name":"Validators","nameLocations":["29446:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"29446:10:169"},"referencedDeclaration":83082,"src":"29446:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29445:20:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84041,"nodeType":"FunctionDefinition","src":"29819:312:169","nodes":[],"body":{"id":84040,"nodeType":"Block","src":"29928:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":84026,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84017,"src":"29968:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84027,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84019,"src":"29976:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84025,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84108,"src":"29942:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":84028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29942:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":84038,"nodeType":"Block","src":"30056:69:169","statements":[{"expression":{"expression":{"expression":{"id":84034,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84017,"src":"30077:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30084:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"30077:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30103:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83345,"src":"30077:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":84024,"id":84037,"nodeType":"Return","src":"30070:44:169"}]},"id":84039,"nodeType":"IfStatement","src":"29938:187:169","trueBody":{"id":84033,"nodeType":"Block","src":"29981:69:169","statements":[{"expression":{"expression":{"expression":{"id":84029,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84017,"src":"30002:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30009:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"30002:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30028:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83348,"src":"30002:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":84024,"id":84032,"nodeType":"Return","src":"29995:44:169"}]}}]},"documentation":{"id":84014,"nodeType":"StructuredDocumentation","src":"29688:126:169","text":" @dev Returns validators at the given timestamp.\n @param ts Timestamp for which to get the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsAt","nameLocation":"29828:12:169","parameters":{"id":84020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84017,"mutability":"mutable","name":"router","nameLocation":"29865:6:169","nodeType":"VariableDeclaration","scope":84041,"src":"29841:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84016,"nodeType":"UserDefinedTypeName","pathNode":{"id":84015,"name":"IRouter.Storage","nameLocations":["29841:7:169","29849:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"29841:15:169"},"referencedDeclaration":74495,"src":"29841:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84019,"mutability":"mutable","name":"ts","nameLocation":"29881:2:169","nodeType":"VariableDeclaration","scope":84041,"src":"29873:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84018,"name":"uint256","nodeType":"ElementaryTypeName","src":"29873:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29840:44:169"},"returnParameters":{"id":84024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84041,"src":"29908:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84022,"nodeType":"UserDefinedTypeName","pathNode":{"id":84021,"name":"Validators","nameLocations":["29908:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"29908:10:169"},"referencedDeclaration":83082,"src":"29908:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29907:20:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84108,"nodeType":"FunctionDefinition","src":"30538:863:169","nodes":[],"body":{"id":84107,"nodeType":"Block","src":"30682:719:169","nodes":[],"statements":[{"assignments":[84053],"declarations":[{"constant":false,"id":84053,"mutability":"mutable","name":"ts0","nameLocation":"30700:3:169","nodeType":"VariableDeclaration","scope":84107,"src":"30692:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84052,"name":"uint256","nodeType":"ElementaryTypeName","src":"30692:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84058,"initialValue":{"expression":{"expression":{"expression":{"id":84054,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84045,"src":"30706:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30713:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"30706:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30732:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83345,"src":"30706:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},"id":84057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30744:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83081,"src":"30706:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30692:68:169"},{"assignments":[84060],"declarations":[{"constant":false,"id":84060,"mutability":"mutable","name":"ts1","nameLocation":"30778:3:169","nodeType":"VariableDeclaration","scope":84107,"src":"30770:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84059,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84065,"initialValue":{"expression":{"expression":{"expression":{"id":84061,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84045,"src":"30784:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30791:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"30784:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":84063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30810:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83348,"src":"30784:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},"id":84064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30822:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83081,"src":"30784:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30770:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84067,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84053,"src":"30912:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":84068,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84060,"src":"30919:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30912:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84070,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83052,"src":"30924:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30924:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84066,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30904:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30904:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84073,"nodeType":"ExpressionStatement","src":"30904:50:169"},{"assignments":[84075],"declarations":[{"constant":false,"id":84075,"mutability":"mutable","name":"ts1Greater","nameLocation":"30970:10:169","nodeType":"VariableDeclaration","scope":84107,"src":"30965:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84074,"name":"bool","nodeType":"ElementaryTypeName","src":"30965:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84079,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84076,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84053,"src":"30983:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84077,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84060,"src":"30989:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30983:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30965:27:169"},{"assignments":[84081],"declarations":[{"constant":false,"id":84081,"mutability":"mutable","name":"tsGe0","nameLocation":"31007:5:169","nodeType":"VariableDeclaration","scope":84107,"src":"31002:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84080,"name":"bool","nodeType":"ElementaryTypeName","src":"31002:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84082,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84053,"src":"31015:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":84083,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84047,"src":"31022:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31015:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31002:22:169"},{"assignments":[84087],"declarations":[{"constant":false,"id":84087,"mutability":"mutable","name":"tsGe1","nameLocation":"31039:5:169","nodeType":"VariableDeclaration","scope":84107,"src":"31034:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84086,"name":"bool","nodeType":"ElementaryTypeName","src":"31034:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84091,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84088,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84060,"src":"31047:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":84089,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84047,"src":"31054:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31047:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31034:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84093,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84081,"src":"31148:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":84094,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84087,"src":"31157:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31148:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84096,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"31164:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31164:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84092,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31140:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31140:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84099,"nodeType":"ExpressionStatement","src":"31140:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84100,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84075,"src":"31364:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84101,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84081,"src":"31379:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":84102,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84087,"src":"31388:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31379:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":84104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31378:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31364:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":84051,"id":84106,"nodeType":"Return","src":"31357:37:169"}]},"documentation":{"id":84042,"nodeType":"StructuredDocumentation","src":"30137:396:169","text":" @dev Returns `true` if validators at `ts` are stored in `router.validationSettings.validators1`.\n `false` means that current era validators are stored in `router.validationSettings.validators0`.\n @param ts Timestamp for which to check the validators slot.\n @return isSlot1 Whether validators at `ts` are stored in `router.validationSettings.validators1`."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsStoredInSlot1At","nameLocation":"30547:25:169","parameters":{"id":84048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84045,"mutability":"mutable","name":"router","nameLocation":"30597:6:169","nodeType":"VariableDeclaration","scope":84108,"src":"30573:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84044,"nodeType":"UserDefinedTypeName","pathNode":{"id":84043,"name":"IRouter.Storage","nameLocations":["30573:7:169","30581:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"30573:15:169"},"referencedDeclaration":74495,"src":"30573:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84047,"mutability":"mutable","name":"ts","nameLocation":"30613:2:169","nodeType":"VariableDeclaration","scope":84108,"src":"30605:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84046,"name":"uint256","nodeType":"ElementaryTypeName","src":"30605:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30572:44:169"},"returnParameters":{"id":84051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84050,"mutability":"mutable","name":"isSlot1","nameLocation":"30669:7:169","nodeType":"VariableDeclaration","scope":84108,"src":"30664:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84049,"name":"bool","nodeType":"ElementaryTypeName","src":"30664:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30663:14:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84154,"nodeType":"FunctionDefinition","src":"31903:456:169","nodes":[],"body":{"id":84153,"nodeType":"Block","src":"32086:273:169","nodes":[],"statements":[{"assignments":[84121],"declarations":[{"constant":false,"id":84121,"mutability":"mutable","name":"a","nameLocation":"32104:1:169","nodeType":"VariableDeclaration","scope":84153,"src":"32096:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84120,"name":"uint256","nodeType":"ElementaryTypeName","src":"32096:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84122,"nodeType":"VariableDeclarationStatement","src":"32096:9:169"},{"id":84129,"nodeType":"UncheckedBlock","src":"32115:76:169","statements":[{"expression":{"id":84127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84123,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84121,"src":"32139:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84124,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84111,"src":"32143:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":84125,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84113,"src":"32162:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32143:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32139:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84128,"nodeType":"ExpressionStatement","src":"32139:41:169"}]},{"assignments":[84131],"declarations":[{"constant":false,"id":84131,"mutability":"mutable","name":"d","nameLocation":"32208:1:169","nodeType":"VariableDeclaration","scope":84153,"src":"32200:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84130,"name":"uint256","nodeType":"ElementaryTypeName","src":"32200:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84135,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84132,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84121,"src":"32212:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":84133,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84115,"src":"32216:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32212:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32200:36:169"},{"assignments":[84137],"declarations":[{"constant":false,"id":84137,"mutability":"mutable","name":"r","nameLocation":"32254:1:169","nodeType":"VariableDeclaration","scope":84153,"src":"32246:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84136,"name":"uint256","nodeType":"ElementaryTypeName","src":"32246:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84141,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84138,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84121,"src":"32258:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":84139,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84115,"src":"32262:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32258:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32246:36:169"},{"id":84152,"nodeType":"UncheckedBlock","src":"32292:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84142,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84137,"src":"32324:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32328:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32324:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":84145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32323:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84149,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84131,"src":"32341:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32323:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84146,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84131,"src":"32333:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":84147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32337:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32333:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84119,"id":84151,"nodeType":"Return","src":"32316:26:169"}]}]},"documentation":{"id":84109,"nodeType":"StructuredDocumentation","src":"31407:491:169","text":" @dev Calculates the threshold number of valid signatures required.\n The formula is:\n - `(validatorsAmount * thresholdNumerator).div_ceil(thresholdDenominator)`\n @param validatorsAmount The total number of validators.\n @param thresholdNumerator The numerator of the threshold fraction.\n @param thresholdDenominator The denominator of the threshold fraction.\n @return threshold The threshold number of valid signatures required."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"31912:19:169","parameters":{"id":84116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84111,"mutability":"mutable","name":"validatorsAmount","nameLocation":"31940:16:169","nodeType":"VariableDeclaration","scope":84154,"src":"31932:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84110,"name":"uint256","nodeType":"ElementaryTypeName","src":"31932:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84113,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"31966:18:169","nodeType":"VariableDeclaration","scope":84154,"src":"31958:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84112,"name":"uint128","nodeType":"ElementaryTypeName","src":"31958:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":84115,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"31994:20:169","nodeType":"VariableDeclaration","scope":84154,"src":"31986:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84114,"name":"uint128","nodeType":"ElementaryTypeName","src":"31986:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"31931:84:169"},"returnParameters":{"id":84119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84118,"mutability":"mutable","name":"threshold","nameLocation":"32071:9:169","nodeType":"VariableDeclaration","scope":84154,"src":"32063:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84117,"name":"uint256","nodeType":"ElementaryTypeName","src":"32063:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32062:19:169"},"scope":84267,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":84177,"nodeType":"FunctionDefinition","src":"32544:179:169","nodes":[],"body":{"id":84176,"nodeType":"Block","src":"32640:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84165,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84160,"src":"32658:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84166,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84158,"src":"32663:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32670:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"32663:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32683:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"32663:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"32658:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84170,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32657:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84171,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84158,"src":"32696:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32703:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"32696:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32713:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83332,"src":"32696:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32657:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84164,"id":84175,"nodeType":"Return","src":"32650:66:169"}]},"documentation":{"id":84155,"nodeType":"StructuredDocumentation","src":"32365:174:169","text":" @dev Returns the era index for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era index."},"implemented":true,"kind":"function","modifiers":[],"name":"eraIndexAt","nameLocation":"32553:10:169","parameters":{"id":84161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84158,"mutability":"mutable","name":"router","nameLocation":"32588:6:169","nodeType":"VariableDeclaration","scope":84177,"src":"32564:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84157,"nodeType":"UserDefinedTypeName","pathNode":{"id":84156,"name":"IRouter.Storage","nameLocations":["32564:7:169","32572:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"32564:15:169"},"referencedDeclaration":74495,"src":"32564:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84160,"mutability":"mutable","name":"ts","nameLocation":"32604:2:169","nodeType":"VariableDeclaration","scope":84177,"src":"32596:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84159,"name":"uint256","nodeType":"ElementaryTypeName","src":"32596:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32563:44:169"},"returnParameters":{"id":84164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84177,"src":"32631:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84162,"name":"uint256","nodeType":"ElementaryTypeName","src":"32631:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32630:9:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84202,"nodeType":"FunctionDefinition","src":"32939:199:169","nodes":[],"body":{"id":84201,"nodeType":"Block","src":"33037:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84188,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"33054:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33061:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"33054:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33074:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"33054:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":84192,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"33097:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84193,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84183,"src":"33105:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84191,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84177,"src":"33086:10:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33086:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":84195,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"33111:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33118:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"33111:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33128:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83332,"src":"33111:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33086:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33054:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84187,"id":84200,"nodeType":"Return","src":"33047:84:169"}]},"documentation":{"id":84178,"nodeType":"StructuredDocumentation","src":"32729:205:169","text":" @dev Returns the timestamp when the era started for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era start timestamp."},"implemented":true,"kind":"function","modifiers":[],"name":"eraStartedAt","nameLocation":"32948:12:169","parameters":{"id":84184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84181,"mutability":"mutable","name":"router","nameLocation":"32985:6:169","nodeType":"VariableDeclaration","scope":84202,"src":"32961:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84180,"nodeType":"UserDefinedTypeName","pathNode":{"id":84179,"name":"IRouter.Storage","nameLocations":["32961:7:169","32969:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"32961:15:169"},"referencedDeclaration":74495,"src":"32961:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84183,"mutability":"mutable","name":"ts","nameLocation":"33001:2:169","nodeType":"VariableDeclaration","scope":84202,"src":"32993:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84182,"name":"uint256","nodeType":"ElementaryTypeName","src":"32993:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32960:44:169"},"returnParameters":{"id":84187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84202,"src":"33028:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84185,"name":"uint256","nodeType":"ElementaryTypeName","src":"33028:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33027:9:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84225,"nodeType":"FunctionDefinition","src":"33478:467:169","nodes":[],"body":{"id":84224,"nodeType":"Block","src":"33624:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84214,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84206,"src":"33696:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33707:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"33696:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84216,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84206,"src":"33782:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33793:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":83069,"src":"33782:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84218,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84206,"src":"33853:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33864:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"33853:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84220,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84206,"src":"33900:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33911:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83081,"src":"33900:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84212,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"33641:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":84213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33646:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":83094,"src":"33641:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$83094_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33675:19:169","33740:40:169","33847:4:169","33882:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"33641:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84211,"id":84223,"nodeType":"Return","src":"33634:304:169"}]},"documentation":{"id":84203,"nodeType":"StructuredDocumentation","src":"33144:329:169","text":" @dev Converts `Gear.Validators` storage to `Gear.ValidatorsView` struct.\n Note that `validators.map` is passed as `validators.list`.\n @param validators The `Gear.Validators` storage to convert.\n @return validatorsView `Gear.ValidatorsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33487:6:169","parameters":{"id":84207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84206,"mutability":"mutable","name":"validators","nameLocation":"33518:10:169","nodeType":"VariableDeclaration","scope":84225,"src":"33494:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84205,"nodeType":"UserDefinedTypeName","pathNode":{"id":84204,"name":"Gear.Validators","nameLocations":["33494:4:169","33499:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"33494:15:169"},"referencedDeclaration":83082,"src":"33494:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33493:36:169"},"returnParameters":{"id":84211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84210,"mutability":"mutable","name":"validatorsView","nameLocation":"33604:14:169","nodeType":"VariableDeclaration","scope":84225,"src":"33577:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84209,"nodeType":"UserDefinedTypeName","pathNode":{"id":84208,"name":"Gear.ValidatorsView","nameLocations":["33577:4:169","33582:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83094,"src":"33577:19:169"},"referencedDeclaration":83094,"src":"33577:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33576:43:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84266,"nodeType":"FunctionDefinition","src":"34242:581:169","nodes":[],"body":{"id":84265,"nodeType":"Block","src":"34400:423:169","nodes":[],"statements":[{"assignments":[84239],"declarations":[{"constant":false,"id":84239,"mutability":"mutable","name":"validators0","nameLocation":"34437:11:169","nodeType":"VariableDeclaration","scope":84265,"src":"34410:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84238,"nodeType":"UserDefinedTypeName","pathNode":{"id":84237,"name":"Gear.ValidatorsView","nameLocations":["34410:4:169","34415:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83094,"src":"34410:19:169"},"referencedDeclaration":83094,"src":"34410:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84244,"initialValue":{"arguments":[{"expression":{"id":84241,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84229,"src":"34458:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34467:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83345,"src":"34458:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}],"id":84240,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84225,84266],"referencedDeclaration":84225,"src":"34451:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$83082_storage_ptr_$returns$_t_struct$_ValidatorsView_$83094_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34451:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34410:69:169"},{"assignments":[84249],"declarations":[{"constant":false,"id":84249,"mutability":"mutable","name":"validators1","nameLocation":"34516:11:169","nodeType":"VariableDeclaration","scope":84265,"src":"34489:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84248,"nodeType":"UserDefinedTypeName","pathNode":{"id":84247,"name":"Gear.ValidatorsView","nameLocations":["34489:4:169","34494:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83094,"src":"34489:19:169"},"referencedDeclaration":83094,"src":"34489:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84254,"initialValue":{"arguments":[{"expression":{"id":84251,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84229,"src":"34537:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34546:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83348,"src":"34537:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}],"id":84250,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84225,84266],"referencedDeclaration":84225,"src":"34530:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$83082_storage_ptr_$returns$_t_struct$_ValidatorsView_$83094_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34530:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34489:69:169"},{"expression":{"arguments":[{"expression":{"id":84257,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84229,"src":"34637:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34646:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83340,"src":"34637:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84259,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84229,"src":"34700:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34709:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83342,"src":"34700:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84261,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84239,"src":"34756:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84262,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84249,"src":"34794:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$83094_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84255,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"34575:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":84256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34580:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83361,"src":"34575:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83361_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34617:18:169","34678:20:169","34743:11:169","34781:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34575:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84234,"id":84264,"nodeType":"Return","src":"34568:248:169"}]},"documentation":{"id":84226,"nodeType":"StructuredDocumentation","src":"33951:286:169","text":" @dev Converts `Gear.ValidationSettings` storage to `Gear.ValidationSettingsView` struct.\n @param settings The `Gear.ValidationSettings` storage to convert.\n @return settingsView `Gear.ValidationSettingsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"34251:6:169","parameters":{"id":84230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84229,"mutability":"mutable","name":"settings","nameLocation":"34290:8:169","nodeType":"VariableDeclaration","scope":84266,"src":"34258:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84228,"nodeType":"UserDefinedTypeName","pathNode":{"id":84227,"name":"Gear.ValidationSettings","nameLocations":["34258:4:169","34263:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":83349,"src":"34258:23:169"},"referencedDeclaration":83349,"src":"34258:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"34257:42:169"},"returnParameters":{"id":84234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84233,"mutability":"mutable","name":"settingsView","nameLocation":"34382:12:169","nodeType":"VariableDeclaration","scope":84266,"src":"34347:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84232,"nodeType":"UserDefinedTypeName","pathNode":{"id":84231,"name":"Gear.ValidationSettingsView","nameLocations":["34347:4:169","34352:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":83361,"src":"34347:27:169"},"referencedDeclaration":83361,"src":"34347:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"34346:49:169"},"scope":84267,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":83008,"nodeType":"StructuredDocumentation","src":"744:770:169","text":" @dev Library for core protocol utility functions for hashing, validation, and consensus-related logic.\n It provides:\n - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions)\n - Validator set management with era-based switching and threshold configuration\n - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures\n with transient storage to prevent double counting of signatures\n - Era and timeline utilities for selecting correct validator sets based on timestamp\n The library acts as a shared foundation for consensus, validation, and commitment verification\n across all protocol components."},"fullyImplemented":true,"linearizedBaseContracts":[84267],"name":"Gear","nameLocation":"1523:4:169","scope":84268,"usedErrors":[83037,83040,83043,83046,83049,83052,83055],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":169} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Middleware.json b/ethexe/ethereum/abi/Middleware.json index 79597a9886f..79050459832 100644 --- a/ethexe/ethereum/abi/Middleware.json +++ b/ethexe/ethereum/abi/Middleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"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":"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":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;7983:34:30;7979:146;;-1:-1:-1;2376:21827:160;;;;;;;;1052:13:60;2376:21827:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;8085:29:30;;2376:21827:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2376:21827:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7849:17;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;2357:1:29;2376:21827:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2376:21827:160;;;;;;;;;;;;;;;9103:10;9074:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9074:20;9103:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;13809:372;2376:21827;;:::i;:::-;;;:::i;:::-;22945:2;;;;:::i;:::-;13809:372;:::i;:::-;2376:21827;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7536:21;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7422:30:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7422:30;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7641:21;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7296:34:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7296:34;2376:21827;;;;;;;;;;;;;;;;;;;;;;7747:22;-1:-1:-1;;;;;;;;;;;2376:21827:160;7747:22;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;:::i;:::-;;;;;;7981:20;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;16223:38;;2376:21827;-1:-1:-1;;;;;2376:21827:160;16209:10;:52;16205:108;;2376:21827;;;;16328:9;16339:18;;;;;;2376:21827;;;16359:3;16411:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;8806:28:86;;16441:17:160;;-1:-1:-1;;;;;16468:11:160;2376:21827;16468:11;:::i;:::-;2376:21827;8806:28:86;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;16440:40:160;16436:106;;2376:21827;;-1:-1:-1;;;;;16576:11:160;;;:::i;:::-;2376:21827;;;;;;;;;;16569:29;;;;;;;;;2376:21827;16569:29;;;;;;;16359:3;2376:21827;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16556:83;;16613:11;2376:21827;;16556:83;;2376:21827;;;;;;;;;;;:::i;:::-;16556:83;;-1:-1:-1;;;;;2376:21827:160;16556:83;;;;;;;2376:21827;16556:83;;;16359:3;;2376:21827;16328:9;;16556:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;16569:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;16436:106;-1:-1:-1;;;16507:20:160;;2376:21827;15830:20;16507;16205:108;-1:-1:-1;;;16284:18:160;;2376:21827;8477:18;16284;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;4301:16:30;2376:21827:160;;4724:16:30;;:34;;;;2376:21827:160;4803:1:30;4788:16;:50;;;;2376:21827:160;4853:13:30;:30;;;;2376:21827:160;4849:91:30;;;2376:21827:160;4803:1:30;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;3446:19;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;3501:29;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3564:27;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3622:24;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3676:23;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3736:30;2376:21827;;;;;;;;;4803:1:30;3709:24:160;;2376:21827;;;;;;;;;;3776:27;;;2376:21827;3806:33;2376:21827;;;3877:31;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;;;;3849:25:160;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;3942:27;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;4017:18;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;4002:12;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4068:4;3564:27;2376:21827;;4045:12;;2376:21827;4130:19;2376:21827;4114:13;;;2376:21827;4171:14;2376:21827;;;;;;;;4160:8;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4210:17;2376:21827;;;;;;;;4196:11;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;4255:33;;:::i;:::-;2376:21827;4238:69;;;;;2376:21827;;;;;;;;;;;;;4238:69;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;4343:35:160;;:::i;:::-;2376:21827;4317:91;;;;;2376:21827;;;3446:19;2376:21827;;;;;;;;;4317:91;;4068:4;2376:21827;4317:91;;2376:21827;4317:91;;;;;;;;2376:21827;;;;;;;;17713:17;2376:21827;;;;;;;;;4803:1:30;2376:21827:160;;;;;;;;;;;18102:44;;2376:21827;;;;;3564:27;2376:21827;;18377:48;2376:21827;;;;;;;;18665:45;2376:21827;;3736:30;2376:21827;;;;18840:21;;2376:21827;;;;;;19112:28;;2376:21827;;;19219:44;;;;:::i;:::-;2376:21827;19219:71;2376:21827;;3849:25;2376:21827;;19561:32;2376:21827;;5064:101:30;;2376:21827:160;;;5064:101:30;2376:21827:160;5140:14:30;2376:21827:160;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;4803:1:30;2376:21827:160;;5140:14:30;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;3033:1;2376:21827;;3446:19;2376:21827;;;-1:-1:-1;;;2376:21827:160;;;;;4317:91;;;;;:::i;:::-;2376:21827;;4317:91;;;;2376:21827;;;;4317:91;2376:21827;;;;;;;;;4238:69;;;;;:::i;:::-;2376:21827;;4238:69;;;;2376:21827;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2376:21827:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2376:21827:160;;;;;;;;;;;;;;7164:36;-1:-1:-1;;;;;;;;;;;2376:21827:160;7164:36;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;9356:11;;;;3505:23:170;23973:47:85;2376:21827:160;9356:11;23973:47:85;:::i;:::-;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3505:23;-1:-1:-1;2376:21827:160;;;9401:17;;2376:21827;-1:-1:-1;9401:76:160;;;;2376:21827;9397:144;;;;21805:50:85;;;;:::i;:::-;;2376:21827:160;;9397:144;-1:-1:-1;;;9500:30:160;;2376:21827;9500:30;;9401:76;2376:21827;837:15:87;;;9441:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;9441:36;;:::i;:::-;2376:21827;;;9422:55;9401:76;;;;2376:21827;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;11781:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11756:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11756:17;11781:5;:::i;2376:21827::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8425:29;;2376:21827;;8425:29;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8411:10;:43;8407:99;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21827:160;10308:8;;;;2376:21827;;;;;;;;;10294:10;:22;10290:71;;2376:21827;;;10396:12;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;10375:33;10371:90;;10471:30;;;;;;2376:21827;10516:13;;10670:8;2376:21827;10906:13;10670:8;;;10906:13;;2376:21827;;;;10511:677;10568:3;10535:24;;2376:21827;;10531:35;;;;;10623:27;;;;:::i;:::-;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;2376:21827:160;;;;5197:14:86;;2376:21827:160;;;;;;5197:26:86;10665:99:160;;2376:21827;;;;10884:58;2376:21827;;;;3710:23:170;2376:21827:160;23973:47:85;2376:21827:160;;;;;;;;;23973:47:85;;:::i;3710:23:170:-;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;-1:-1:-1;2376:21827:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10884:58;;;;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;:::i;:::-;10884:58;2376:21827;;10884:58;;;;;;:::i;:::-;2376:21827;;;;11041:14;;;2376:21827;;11041:14;;2376:21827;;11041:14;;-1:-1:-1;;;;;2376:21827:160;;;;;10956:106;;;;;2376:21827;;;;;;;;;;;;;;;;;;;10956:106;;2376:21827;10956:106;;2376:21827;;;;;;;;;;;;;;;;;;;:::i;:::-;10956:106;;;;;;;;;;;;;10568:3;2376:21827;;;11097:80;2376:21827;;;;;;;;;;;;;;;11129:47;;;2376:21827;;;;;;11129:47;;;;;;:::i;:::-;11097:80;:::i;:::-;10568:3;2376:21827;10516:13;;;10956:106;;;;;:::i;:::-;2376:21827;;10956:106;;;;;2376:21827;;;;;;;;;10956:106;2376:21827;;;10531:35;;11215:93;10531:35;;;2376:21827;;;;;11247:60;;;;2376:21827;;;;;;;;;;;;11247:60;;;11129:47;11247:60;;:::i;11215:93::-;2376:21827;;;;;11205:104;2376:21827;;;;;;10371:90;-1:-1:-1;;;10431:19:160;;2376:21827;20113:19;10431;10290:71;-1:-1:-1;;;10339:11:160;;2376:21827;9799:11;10339;2376:21827;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;9768:8;;;2376:21827;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;9754:10;:22;;;9750:71;;9844:12;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9835:21;;9831:78;;9943:27;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9919:101;;;;;;2376:21827;;;;;;;;;;;;9919:101;;2376:21827;9919:101;;2376:21827;;;;;;;;;;;;;;;9919:101;;;;;;;;2376:21827;;;;;;10048:30;;;;2376:21827;;;;;;;;10048:30;;;2376:21827;10048:30;;:::i;:::-;2376:21827;10038:41;;2376:21827;;;;;;9919:101;;;;;;:::i;:::-;2376:21827;;9919:101;;;;2376:21827;;;;;;;;;9831:78;-1:-1:-1;;;9879:19:160;;2376:21827;20113:19;9879;9750:71;-1:-1:-1;;;9799:11:160;;2376:21827;9799:11;;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;2376:21827:160;;3975:40:29;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8157:30;;2376:21827;;8157:30;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8143:10;:44;8139:101;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;8139:101;-1:-1:-1;;;8210:19:160;;2376:21827;15350:19;8210;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;6429:44:30;;;;;2376:21827:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6959:1:30;;-1:-1:-1;;;;;2376:21827:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;2376:21827:160;;;;;;;1800:178:73;2376:21827:160;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;6591:4:30;5155:33:160;;2376:21827;;;6591:4:30;5119:33:160;;2376:21827;;;;;;;;;;4573:1;5237:36;;2376:21827;4573:1;5198:36;;2376:21827;5364:63;5320:34;;;-1:-1:-1;;;;;2376:21827:160;;;;5283:34;;5320;5283;;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;5364:63;5461:21;;;;2376:21827;5437:21;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;5516:21;;;2376:21827;5492:21;;;2376:21827;5572:22;;;;2376:21827;5547:22;;;2376:21827;5624:17;;;;2376:21827;5604:17;;;2376:21827;;;;;;;;;;;5674:20;5651;;;;5674;;2376:21827;;;;;;-1:-1:-1;;5729:20:160;5850;;;;5710:13;5729:20;;;;5710:13;5760:3;2376:21827;;5725:33;;;;;5810:26;5850:36;5810:26;6591:4:30;5810:26:160;;;:::i;:::-;5850:36;;;:::i;:::-;;2376:21827;5710:13;;5725:33;-1:-1:-1;5931:17:160;6046;;;;5725:33;5931:17;5725:33;5959:3;2376:21827;;5927:30;;;;;6009:23;6046:33;6009:23;6591:4:30;6009:23:160;;;:::i;:::-;6046:33;;;:::i;:::-;;2376:21827;5912:13;;5927:30;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6654:20:30;2376:21827:160;;;4573:1;2376:21827;;6654:20:30;2376:21827:160;;;;;;-1:-1:-1;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2376:21827:160;;6496:23:30;6429:44;4573:1:160;2376:21827;;-1:-1:-1;;;;;2376:21827:160;6448:25:30;;6429:44;;;2376:21827:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2376:21827:160;4815:4:60;4807:23;4803:145;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2376:21827:160;;4908:29:60;2376:21827:160;-1:-1:-1;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2376:21827:160;4392:4:60;4384:23;;;:120;;;;2376:21827:160;4367:251:60;;;2303:62:29;;:::i;:::-;2376:21827:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;5865:52:60;;;;;;;2376:21827:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2376:21827:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;2407:36:53;2376:21827:160;;2407:36:53;2376:21827:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2376:21827:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2376:21827:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2376:21827:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2376:21827:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2376:21827:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2376:21827:160;;;6026:34:60;;5865:52;;;;2376:21827:160;5865:52:60;;2376:21827:160;5865:52:60;;;;;;2376:21827:160;5865:52:60;;;:::i;:::-;;;2376:21827:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2376:21827:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;9200:10;9172:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9172:20;9200:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;11664:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11638:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11638:17;11664:5;:::i;2376:21827::-;;;;;;;;;;;;;;;7032:33;-1:-1:-1;;;;;;;;;;;2376:21827:160;7032:33;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;8720:28;;;2376:21827;;;-1:-1:-1;;;8710:60:160;;8759:10;2376:21827;8710:60;;2376:21827;;;;;;8710:60;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8710:60;;;;;;;;;;;2376:21827;8709:61;;8705:121;;8854:24;;;2376:21827;;;-1:-1:-1;;;8840:76:160;;8759:10;2376:21827;8840:76;;2376:21827;8910:4;8710:60;2376:21827;;;;;;;;8840:76;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8840:76;;;;;;;;;;;2376:21827;8839:77;;8835:137;;2166:50:170;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;8759:10;8982:11;8759:10;8982:11;;2166:50:170;:::i;:::-;2165:51;2161:103;;2376:21827:160;;2161:103:170;-1:-1:-1;;;2239:14:170;;2376:21827:160;;2239:14:170;8835:137:160;-1:-1:-1;;;8939:22:160;;2376:21827;8939:22;;8840:76;;;;2376:21827;8840:76;2376:21827;8840:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;8705:121;-1:-1:-1;;;8793:22:160;;2376:21827;8793:22;;8710:60;;;;2376:21827;8710:60;2376:21827;8710:60;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;11943:8;;;;3505:23:170;23973:47:85;2376:21827:160;11943:8;23973:47:85;:::i;3505:23:170:-;-1:-1:-1;2376:21827:160;;;11982:17;;2376:21827;-1:-1:-1;11982:73:160;;;;2376:21827;11978:138;;;;21805:50:85;;;;:::i;11978:138:160:-;-1:-1:-1;;;12078:27:160;;2376:21827;12078:27;;11982:73;2376:21827;837:15:87;;;12022:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;12022:33;;:::i;:::-;2376:21827;;;12003:52;11982:73;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;15297:30;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;15283:10;:44;15279:101;;15395:9;2376:21827;;15390:726;15423:3;2376:21827;;;;;15406:15;;;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15520:18:160;2376:21827;;;15520:18;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15498:41:160;15494:110;;15623:9;15663:3;15638:16;;;;2376:21827;;;15638:16;:::i;:::-;15634:27;;;;;;;15722:19;15638:16;15722;15638;;;2376:21827;;;15722:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15783:15:160;;;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15764:35:160;15760:109;;2376:21827;;;;;;-1:-1:-1;;;;;15912:15:160;2376:21827;15912:15;:::i;:::-;2376:21827;;;;;;;;;;15905:33;;;;;;;;;;;;;15663:3;16012:12;2376:21827;16012:12;;2376:21827;;16026:18;2376:21827;;;16026:18;:::i;:::-;16064:12;;;2376:21827;;;;;;;;16064:12;;;;2376:21827;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;15956:135;;2376:21827;15956:135;;2376:21827;;;;;;;;;;;16046:16;2376:21827;;;;;;16064:12;;;2376:21827;;;;;;;;;;;;;;;;:::i;:::-;15956:135;;-1:-1:-1;;;;;2376:21827:160;15956:135;;;;;;;2376:21827;15956:135;;;15663:3;;2376:21827;15623:9;;15956:135;;;;;;;;;;;;;:::i;:::-;;;;;15905:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15634:27;;;2376:21827;15634:27;;2376:21827;15395:9;;;15494:110;-1:-1:-1;;;15566:23:160;;2376:21827;15566:23;;15406:15;;2376:21827;;15279:101;-1:-1:-1;;;15350:19:160;;2376:21827;15350:19;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;19801:11;;;2376:21827;;;-1:-1:-1;;;19791:53:160;;-1:-1:-1;;;;;2376:21827:160;;;;19791:53;;2376:21827;;;;;;;;;;;;;;;19791:53;;;;;;;2376:21827;19791:53;;;2376:21827;19790:54;;19786:109;;2376:21827;;-1:-1:-1;;;19909:35:160;;2376:21827;;;;19909:35;;;;;;;;2376:21827;19909:35;;;2376:21827;19948:25;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;19909:64;19905:128;;2376:21827;;-1:-1:-1;;;20047:27:160;;2376:21827;;;;20047:27;;;;;;;;2376:21827;20047:27;;;2376:21827;-1:-1:-1;20078:12:160;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;20047:43;20043:100;;2376:21827;;-1:-1:-1;;;20209:30:160;;2376:21827;;;;20209:30;;;;;;;;2376:21827;20209:30;;;2376:21827;;;;;;;;;;;20253:44;;;20249:107;;2376:21827;;-1:-1:-1;;;20404:39:160;;2376:21827;;;;20404:39;;;;;;;;2376:21827;20404:39;;;2376:21827;20403:40;;20399:103;;2376:21827;;-1:-1:-1;;;20554:26:160;;2376:21827;;;;20554:26;;;;;;;;2376:21827;20554:26;;;2376:21827;-1:-1:-1;2376:21827:160;20621:12;;;2376:21827;;;;-1:-1:-1;;;20595:39:160;;;;;2376:21827;20621:12;;-1:-1:-1;;;;;2376:21827:160;;;;;;;20595:39;;;;;;;2376:21827;20595:39;;;2376:21827;-1:-1:-1;20595:60:160;20591:158;;2376:21827;;;;;;;;;;;;;20778:32;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;17543:82;;2376:21827;;-1:-1:-1;;;20858:37:160;;2376:21827;;;;20858:37;;;;;;;;;;;;2376:21827;20857:38;;20853:99;;2376:21827;;-1:-1:-1;;;20980:24:160;;2376:21827;;;;20980:24;;;;;;;;;;;;2376:21827;-1:-1:-1;2376:21827:160;;-1:-1:-1;;;21018:23:160;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;21018:23;;;;;;;;;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;21018:48;21014:111;;2376:21827;;-1:-1:-1;;;21139:36:160;;2376:21827;;;;21139:36;;;;;;;;;;;;2376:21827;21135:98;;;2376:21827;;-1:-1:-1;;;21265:36:160;;2376:21827;;;;21265:36;;;;;;;;;;;;2376:21827;;;;;;;;;;;21315:32;21311:92;;21417:39;2376:21827;21432:24;;;;;2376:21827;;21417:39;;:::i;:::-;2376:21827;21417:60;21413:119;;2376:21827;;-1:-1:-1;;;21546:46:160;;2376:21827;;;;21546:46;;;;;;;;;;;;2376:21827;21595:27;;;;2376:21827;-1:-1:-1;21542:139:160;;2376:21827;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;21710:58;;2376:21827;21710:58;;2376:21827;;;;;;;;;;;:::i;:::-;21710:58;;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;21782:22;;;-1:-1:-1;21874:24:160;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;21820:93;;;;;2376:21827;;;;;;;;;;;;;;;;;21820:93;;;2376:21827;21820:93;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;21820:93;;;;;;;;;;;;;21778:299;;;;2376:21827;;-1:-1:-1;;;22163:23:160;;;2376:21827;;;22163:23;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22163:37;22159:94;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;22369:41;;;2376:21827;;;;;;;;;;;22359:71;;;2376:21827;22359:71;;2376:21827;22359:71;;;;;;;;;;;21778:299;22358:72;;22354:135;;2376:21827;;-1:-1:-1;;;22503:39:160;;;2376:21827;;;22503:39;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22503:49;22499:114;;2376:21827;;-1:-1:-1;;;22627:41:160;;;2376:21827;;;22627:41;;;;;;;;;-1:-1:-1;;;;;22627:41:160;21595:27;22627:41;;;;;21778:299;2376:21827;;;22627:46;22623:118;;11500:17;2166:50:170;837:15:87;;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;11500:17:160;2166:50:170;:::i;22623:118:160:-;-1:-1:-1;;;22696:34:160;;2376:21827;22696:34;;22627:41;;;;;;-1:-1:-1;22627:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;22499:114;-1:-1:-1;;;22575:27:160;;2376:21827;22575:27;;22503:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21827;;;;;;;;;22354:135;-1:-1:-1;;;22453:25:160;;2376:21827;22453:25;;22359:71;;;;;;;;;;;;;;:::i;:::-;;;;22159:94;-1:-1:-1;;;22223:19:160;;2376:21827;22223:19;;22163:23;;;;;;;;;;;;;;:::i;:::-;;;;21820:93;;;;;:::i;:::-;2376:21827;;21820:93;;;;21778:299;21946:24;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;21934:36;;-1:-1:-1;21778:299:160;;-1:-1:-1;21930:147:160;-1:-1:-1;;;22048:18:160;;2376:21827;22048:18;;21710:58;;;;;;;;;;;;;;:::i;:::-;;;;21542:139;-1:-1:-1;;;21645:25:160;;2376:21827;21645:25;;21546:46;;;2376:21827;21546:46;;2376:21827;21546:46;;;;;;2376:21827;21546:46;;;:::i;:::-;;;2376:21827;;;;;21546:46;;;2376:21827;-1:-1:-1;2376:21827:160;;21546:46;;;-1:-1:-1;21546:46:160;;21413:119;-1:-1:-1;;;21500:21:160;;2376:21827;21500:21;;21311:92;-1:-1:-1;;;21370:22:160;;2376:21827;21370:22;;21265:36;;;;2376:21827;21265:36;2376:21827;21265:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21135:98;-1:-1:-1;;;21198:24:160;;2376:21827;21198:24;;21139:36;;;;2376:21827;21139:36;2376:21827;21139:36;;;;;;;:::i;:::-;;;;21014:111;-1:-1:-1;;;21089:25:160;;2376:21827;21089:25;;21018:23;-1:-1:-1;;;;;21018:23:160;;;;;;2376:21827;21018:23;2376:21827;21018:23;;;;;;;:::i;:::-;;;;;;20980:24;;;;2376:21827;20980:24;2376:21827;20980:24;;;;;;;:::i;:::-;;;;20853:99;-1:-1:-1;;;20918:23:160;;2376:21827;20918:23;;20858:37;;;;2376:21827;20858:37;2376:21827;20858:37;;;;;;;:::i;:::-;;;;17543:82;-1:-1:-1;;;;;;17588:26:160;;2376:21827;17588:26;;20778:32;;;;2376:21827;20778:32;2376:21827;20778:32;;;;;;;:::i;:::-;;;;20591:158;20671:67;;;;;2376:21827;;-1:-1:-1;;;20671:67:160;;2376:21827;;20671:67;;2376:21827;;;-1:-1:-1;;2376:21827:160;;;;;20671:67;2376:21827;;20671:67;;;;;;;;;20591:158;;;;20671:67;;;;;2376:21827;20671:67;;:::i;:::-;2376:21827;;;20671:67;;;2376:21827;;;;;;;;;20595:39;;;2376:21827;20595:39;;2376:21827;20595:39;;;;;;2376:21827;20595:39;;;:::i;:::-;;;2376:21827;;;;;20595:39;;;;;;-1:-1:-1;20595:39:160;;20554:26;;;;2376:21827;20554:26;2376:21827;20554:26;;;;;;;:::i;:::-;;;;20399:103;20466:25;;;2376:21827;20466:25;2376:21827;;20466:25;20404:39;;;;2376:21827;20404:39;2376:21827;20404:39;;;;;;;:::i;:::-;;;;20249:107;20320:25;;;2376:21827;20320:25;2376:21827;;20320:25;20209:30;;;;2376:21827;20209:30;2376:21827;20209:30;;;;;;;:::i;:::-;;;;20043:100;20113:19;;;2376:21827;20113:19;2376:21827;;20113:19;20047:27;;;;2376:21827;20047:27;2376:21827;20047:27;;;;;;;:::i;:::-;;;;19905:128;19996:26;;;2376:21827;19996:26;2376:21827;;19996:26;19909:35;;;;2376:21827;19909:35;2376:21827;19909:35;;;;;;;:::i;:::-;;;;19786:109;19867:17;;;2376:21827;19867:17;2376:21827;;19867:17;19791:53;;;;2376:21827;19791:53;2376:21827;19791:53;;;;;;;:::i;:::-;;;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12161:1642::-;;12278:17;;2376:21827;;12407:29;;;:::i;:::-;2376:21827;;;12451:39;;;;12447:92;;12294:1;20638:17;;2376:21827;;;;;12627:368;12647:5;;;;;;13062:26;;;;12701:1;20638:17;;;2376:21827;;;;;;;;13118:25;;;;:::i;:::-;2376:21827;13158:25;13153:188;13213:3;2376:21827;;13185:26;;;;;13236:9;;;;;:::i;:::-;2376:21827;13236:22;13232:66;;12701:1;2376:21827;;;;;;;12701:1;13311:19;13213:3;2376:21827;13158:25;;;13232:66;13278:5;;;;;;;;;13153:188;12701:1;13355:18;;13351:316;;13153:188;13677:87;;;;;12161:1642;:::o;13351:316::-;2376:21827;;13518:20;;;2376:21827;;;;;;;;;;13518:20;;;;;;;:::i;:::-;2376:21827;13508:31;;2376:21827;;;;;13624:27;2376:21827;;13624:27;;:::i;:::-;-1:-1:-1;;2376:21827:160;;;;;;;13571:85;;-1:-1:-1;;;;;2376:21827:160;13608:48;;;;:::i;:::-;2376:21827;;;13571:85;;:::i;:::-;2376:21827;13351:316;;;;;2376:21827;;;;12294:1;2376:21827;;;;;12294:1;2376:21827;13185:26;;;;;;;;;;;;12654:3;12678:13;;;;;;;;;12294:1;12673:312;12708:3;2376:21827;;;;;-1:-1:-1;;2376:21827:160;;;;;;12693:13;;;;;12735:9;;;;:::i;:::-;2376:21827;12701:1;2376:21827;;;;;;;;12747:13;;;12701:1;12747:13;;;;;;:::i;:::-;2376:21827;-1:-1:-1;12731:240:160;;12708:3;;;;2376:21827;12678:13;;;12731:240;12861:91;2376:21827;12814:13;12784:55;12814:13;;;;;:::i;:::-;2376:21827;12829:9;;;;;:::i;:::-;2376:21827;12784:55;;;;:::i;:::-;2376:21827;12784:55;:::i;:::-;2376:21827;;;;;;12909:22;;;;:::i;:::-;2376:21827;;;12861:91;2376:21827;;;;;12933:18;;;;:::i;:::-;2376:21827;;;12861:91;;:::i;:::-;2376:21827;12731:240;;;;;12693:13;;;;;12701:1;12693:13;;;;;;2376:21827;12632:13;;;12447:92;12506:22;;;;;;;:::o;2376:21827::-;;;;12294:1;2376:21827;;12294:1;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;:::i;:::-;:::o;14224:940::-;;22945:2;;;:::i;:::-;14487:11;-1:-1:-1;;;;;;;;;;;2376:21827:160;14487:11;2376:21827;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;-1:-1:-1;14612:9:160;-1:-1:-1;14607:416:160;14623:24;;;;;;15033:125;;;;;;;;;14376:23;14224:940;:::o;14649:3::-;3215:12:170;;;;3268:14;14768:35:160;3215:12:170;;;;;:::i;:::-;3268:14;;;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3268:14;14768:35:160;;;:::i;:::-;14767:36;14763:83;;14860:39;14935:47;14860:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21827:160;;;;14935:47;:::i;:::-;14913:69;;;;:::i;:::-;2376:21827;15011:1;2376:21827;;;;;;;15011:1;14996:16;14649:3;14612:9;2376:21827;14612:9;;;;;14763:83;14823:8;;15011:1;14823:8;;;13809:372;;14031:43;2376:21827;3505:23:170;23973:47:85;13977:20:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;13977:20;2376:21827;;;;;;;23973:47:85;;:::i;14031:43:160:-;14030:44;14026:83;;14127:47;;;:::i;:::-;13809:372;:::o;14026:83::-;14090:8;;-1:-1:-1;14090:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2376:21827:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2376:21827:160;;3509:1:29;3534:31;24020:181:160;2376:21827;;-1:-1:-1;;;24085:61:160;;2979:4;24085:61;;;2376:21827;24135:10;2979:4;;;2376:21827;;2979:4;;2376:21827;;24085:61;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;24085:61;;;;;;;2979:4;24085:61;;;24020:181;24084:62;;24080:115;;24020:181::o;24080:115::-;24169:15;;;2979:4;24169:15;24085:61;2979:4;24169:15;24085:61;;;;2979:4;24085:61;2979:4;24085:61;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2626:351:170:-;2376:21827:160;;2779:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2779:23:170:-;2376:21827:160;;;;;2817:16:170;;;:37;;;;;2626:351;2813:87;;;2910:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;1716:2:170;2376:21827:160;;1667:52:170;1740:2;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2910:60;:::i;:::-;;2626:351::o;2813:87::-;2877:12;;;-1:-1:-1;2877:12:170;;-1:-1:-1;2877:12:170;2817:37;2376:21827:160;;;;2837:17:170;;2817:37;;;2276:344;2376:21827:160;;2428:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2428:23:170:-;2376:21827:160;;;;2466:16:170;;:37;;;;2276:344;2462:91;;;2563:50;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2563:50;:::i;2462:91::-;2526:16;;;-1:-1:-1;2526:16:170;;-1:-1:-1;2526:16:170;2466:37;2376:21827:160;;;;2486:17:170;2466:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2376:21827:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;5004:11:85;2376:21827:160;;;-1:-1:-1;2376:21827:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;3096:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;7898:23:86;:::i;22972:408:160:-;-1:-1:-1;;;;;;;;;;;2376:21827:160;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;;;;23076:22;;23072:80;;23284:16;2376:21827;;;;;;;;;;;;23183:42;;;:87;:42;;;:87;;23284:16;:::i;:::-;2376:21827;837:15:87;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;23284:36;;23280:94;;22972:408::o;23280:94::-;23121:20;;;-1:-1:-1;23343:20:160;;-1:-1:-1;23343:20:160;23183:87;;;;23284:16;:::i;17224:208::-;2376:21827;;17343:16;;;;17224:208;;17343:16;:37;;17224:208;17343:82;;;;17336:89;;17224:208;:::o;17343:82::-;2376:21827;;17385:17;;;-1:-1:-1;2376:21827:160;17385:39;;;;17343:82;;17224:208;:::o;17385:39::-;2376:21827;;-1:-1:-1;17406:18:160;;-1:-1:-1;17224:208:160;:::o;17343:37::-;2376:21827;;;-1:-1:-1;17363:17:160;;-1:-1:-1;17343:37:160;;;16662:556;-1:-1:-1;;;;;;;;;;;2376:21827:160;16841:8;;;2376:21827;;17125:25;17160:12;;;2376:21827;;;16662:556;2376:21827;;;;;;;16662:556;16837:21;;;;;;16662:556;;;;;;;;:::o;16860:3::-;3215:12:170;;;;;;;;3268:14;16991:53:160;3215:12:170;;;;;:::i;16991:53:160:-;16990:54;16986:101;;2376:21827;;-1:-1:-1;;;17125:25:160;;2376:21827;;;;;17125:25;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;17125:25;;;;;;;2376:21827;17125:25;;;2376:21827;17125:25;;;16860:3;2376:21827;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17110:91:160;;17125:25;17110:91;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17110:91;;-1:-1:-1;;;;;2376:21827:160;17110:91;;;;;;;2376:21827;17110:91;;;16860:3;17101:100;;;2376:21827;17101:100;;:::i;:::-;16860:3;16826:9;2376:21827;16826:9;;;;;;;;;17110:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21827;;;;;;17110:91;;;;;;;17125:25;;;;;;;;;;;;;;:::i;:::-;;;;16986:101;17064:8;;2376:21827;17064:8;;;14296:213:83;2376:21827:160;14374:24:83;;14370:103;;2376:21827:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2376:21827:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2376:21827:160;-1:-1:-1;2376:21827:160;3433:11:85;;;2376:21827:160;;-1:-1:-1;2376:21827:160;;;;8192:26:86;:::i;7082:141:30:-;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2376:21827:160;-1:-1:-1;2376:21827:160;5743:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2376:21827:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;;-1:-1:-1;2376:21827:160;;;-1:-1:-1;2376:21827:160;:::o;3071:1368:86:-;;3266:14;;;2376:21827:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;20638:17;2376:21827;;;;3777:23:86;;;3773:378;;3298:1135;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;20638:17;;2376:21827;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2376:21827:160:-;;;;;;;;;;;;3773:378:86;2376:21827:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2376:21827:160;;;;;;3961:23:86;;;;;:::i;:::-;2376:21827:160;;;;;;;;;;20638:17;;;2376:21827;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2376:21827:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2376:21827:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2376:21827:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2376:21827:160;;;;4933:24:66;2376:21827:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;2581:21:86;;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2376:21827:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"46093":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AlreadyAdded()\":[{\"details\":\"Thrown when an address is already added to the map.\"}],\"AlreadyEnabled()\":[{\"details\":\"Thrown when an address is already enabled.\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotEnabled()\":[{\"details\":\"Thrown when an address is not enabled.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/Middleware.sol\":{\"keccak256\":\"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1\",\"dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8","urls":["bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1","dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":77279,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84099],"IAccessControl":[44539],"IBaseDelegator":[65506],"IDefaultOperatorRewards":[71798],"IDefaultStakerRewards":[71992],"IEntity":[65100],"IMiddleware":[74131],"IMigratableEntity":[65208],"INetworkMiddlewareService":[65994],"INetworkRegistry":[64998],"IOptInService":[66120],"IRegistry":[65332],"IVault":[66856],"IVetoSlasher":[66518],"MapWithTimeData":[84387],"Middleware":[77278],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75008,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75010,"nodeType":"ImportDirective","src":"100:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75009,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75012,"nodeType":"ImportDirective","src":"202:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75011,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75014,"nodeType":"ImportDirective","src":"343:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75013,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75016,"nodeType":"ImportDirective","src":"425:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75015,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75018,"nodeType":"ImportDirective","src":"514:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75017,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75020,"nodeType":"ImportDirective","src":"595:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75019,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75022,"nodeType":"ImportDirective","src":"670:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75021,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75024,"nodeType":"ImportDirective","src":"757:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75023,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75026,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75025,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75028,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":75027,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75030,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":84388,"symbolAliases":[{"foreign":{"id":75029,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84387,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75032,"nodeType":"ImportDirective","src":"985:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75031,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75034,"nodeType":"ImportDirective","src":"1067:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75033,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75036,"nodeType":"ImportDirective","src":"1152:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75035,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75038,"nodeType":"ImportDirective","src":"1226:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75037,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75040,"nodeType":"ImportDirective","src":"1320:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75039,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75042,"nodeType":"ImportDirective","src":"1398:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75041,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75044,"nodeType":"ImportDirective","src":"1489:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75043,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75046,"nodeType":"ImportDirective","src":"1600:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75045,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75048,"nodeType":"ImportDirective","src":"1687:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75047,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75050,"nodeType":"ImportDirective","src":"1772:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75049,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75052,"nodeType":"ImportDirective","src":"1843:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75051,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75054,"nodeType":"ImportDirective","src":"1974:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75053,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77278,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75066,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75063,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75065,"nodeType":"UserDefinedTypeName","pathNode":{"id":75064,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2515:13:160","2529:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2515:30:160"},"referencedDeclaration":56867,"src":"2515:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75070,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75067,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84387,"src":"2557:15:160"},"typeName":{"id":75069,"nodeType":"UserDefinedTypeName","pathNode":{"id":75068,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2577:13:160","2591:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2577:30:160"},"referencedDeclaration":56867,"src":"2577:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75074,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75071,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75073,"nodeType":"UserDefinedTypeName","pathNode":{"id":75072,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2638:13:160","2652:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":57162,"src":"2638:33:160"},"referencedDeclaration":57162,"src":"2638:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$57162_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":75077,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75075,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75076,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75080,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":75083,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2979:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":75086,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75084,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":75094,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75093,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75090,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75092,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75087,"nodeType":"StructuredDocumentation","src":"3041:63:160","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75088,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75089,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75248,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75247,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75103,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"3261:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75102,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"3246:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75106,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75107,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75109,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3345:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":75110,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75113,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75116],"declarations":[{"constant":false,"id":75116,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75247,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75115,"nodeType":"UserDefinedTypeName","pathNode":{"id":75114,"name":"Storage","nameLocations":["3389:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"3389:7:160"},"referencedDeclaration":73928,"src":"3389:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75119,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75117,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"3409:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3409:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3389:30:160"},{"expression":{"id":75125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75120,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3432:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"3430:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75123,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3454:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73864,"src":"3446:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3430:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75126,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3477:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"3475:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75130,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3509:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73866,"src":"3501:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3475:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75133,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75134,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3542:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"3540:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75137,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3572:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73868,"src":"3564:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3540:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75140,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75141,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3603:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"3601:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75144,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73870,"src":"3622:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3601:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75147,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75148,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3658:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"3656:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75151,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73872,"src":"3676:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3656:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75154,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75155,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3711:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"3709:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75158,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3744:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73874,"src":"3736:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3709:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75161,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75162,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3776:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3778:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"3776:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75165,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3806:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73880,"src":"3806:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3776:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75168,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75169,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3849:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3851:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"3849:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75172,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73876,"src":"3877:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3849:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75175,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3918:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3920:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"3918:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75179,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3942:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3950:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73878,"src":"3942:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75182,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75183,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4004:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"4002:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75186,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4025:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73884,"src":"4017:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4002:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75189,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75190,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4047:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"4045:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75198,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75195,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4060:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75193,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4074:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64940,"src":"4060:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4045:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75201,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4116:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"4114:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75205,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73882,"src":"4130:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75208,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4162:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"4160:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75212,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"4171:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4160:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75215,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4198:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"4196:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4218:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4210:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75222,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75224,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4255:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4263:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4255:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75223,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64998","typeString":"contract INetworkRegistry"}},"id":75228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4290:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64997,"src":"4238:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":75229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75230,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75239,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4394:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75237,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75232,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4343:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83216,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75231,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65994","typeString":"contract INetworkMiddlewareService"}},"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4380:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65993,"src":"4317:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75242,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75244,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4436:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":75243,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76827,"src":"4419:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73928_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":75245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75246,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75100,"kind":"modifierInvocation","modifierName":{"id":75099,"name":"initializer","nameLocations":["3224:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"3224:11:160"},"nodeType":"ModifierInvocation","src":"3224:11:160"}],"name":"initialize","nameLocation":"3177:10:160","parameters":{"id":75098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75097,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75248,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75096,"nodeType":"UserDefinedTypeName","pathNode":{"id":75095,"name":"InitParams","nameLocations":["3188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"3188:10:160"},"referencedDeclaration":73890,"src":"3188:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3187:29:160"},"returnParameters":{"id":75101,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75445,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75444,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75258,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"4601:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75257,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4586:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75261,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75264],"declarations":[{"constant":false,"id":75264,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75444,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75263,"nodeType":"UserDefinedTypeName","pathNode":{"id":75262,"name":"Storage","nameLocations":["4620:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4620:7:160"},"referencedDeclaration":73928,"src":"4620:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75265,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"4649:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4620:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":75269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":75268,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75271,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75274],"declarations":[{"constant":false,"id":75274,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75444,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75273,"nodeType":"UserDefinedTypeName","pathNode":{"id":75272,"name":"Storage","nameLocations":["4730:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4730:7:160"},"referencedDeclaration":73928,"src":"4730:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75277,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75275,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"4759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4730:39:160"},{"expression":{"id":75283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75278,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4780:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75281,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4816:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4805:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4780:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75284,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75285,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4848:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4837:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75288,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4883:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4872:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4837:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75291,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75292,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4925:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4914:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75295,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4958:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4947:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4914:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75298,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75299,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4998:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"4987:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75302,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5017:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"5017:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4987:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75305,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75306,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5065:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5054:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75309,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5083:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5094:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5083:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5054:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75312,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75313,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5130:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5119:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75316,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5155:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5166:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5155:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5119:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75319,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75320,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5209:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5198:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75323,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5237:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5237:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5198:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75326,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75327,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5294:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5283:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75330,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5320:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5320:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5283:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75333,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75334,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5375:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5364:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75337,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5408:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5397:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5364:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75340,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75341,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5448:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5437:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75344,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5472:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5461:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5437:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75347,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75348,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5503:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5492:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75351,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5527:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5516:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5492:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75354,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75355,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5558:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5547:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75358,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5572:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5547:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75361,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75362,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5604:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75365,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5624:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5604:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75368,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75369,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75372,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75375,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75408,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75390,75392],"declarations":[{"constant":false,"id":75390,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75408,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75389,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75392,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75408,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75398,"initialValue":{"arguments":[{"id":75396,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75393,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5810:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5821:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5810:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5831:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"5810:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5779:57:160"},{"expression":{"arguments":[{"id":75404,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75390,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75392,"src":"5880:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75399,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5861:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5850:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5871:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"5850:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75407,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75381,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5740:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5729:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5729:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5725:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75409,"initializationExpression":{"assignments":[75377],"declarations":[{"constant":false,"id":75377,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75409,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75376,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75379,"initialValue":{"hexValue":"30","id":75378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5722:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5710:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75388,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75442,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75424,75426],"declarations":[{"constant":false,"id":75424,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75442,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75423,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75426,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75442,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75432,"initialValue":{"arguments":[{"id":75430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75427,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6020:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6009:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6027:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"6009:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5978:54:160"},{"expression":{"arguments":[{"id":75438,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75424,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75426,"src":"6073:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75433,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6046:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"6046:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6046:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75441,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75415,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5942:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"5931:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5949:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5931:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5927:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75443,"initializationExpression":{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75443,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75410,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75413,"initialValue":{"hexValue":"30","id":75412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5912:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75422,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75249,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75252,"kind":"modifierInvocation","modifierName":{"id":75251,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75255,"kind":"modifierInvocation","modifierName":{"id":75253,"name":"reinitializer","nameLocations":["4559:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"4559:13:160"},"nodeType":"ModifierInvocation","src":"4559:16:160"}],"name":"reinitialize","nameLocation":"4527:12:160","parameters":{"id":75250,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75256,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75455,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75454,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75446,"nodeType":"StructuredDocumentation","src":"6102:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":75452,"kind":"modifierInvocation","modifierName":{"id":75451,"name":"onlyOwner","nameLocations":["6333:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6333:9:160"},"nodeType":"ModifierInvocation","src":"6333:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6270:17:160","overrides":{"id":75450,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75448,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75455,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75447,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75453,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75465,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75464,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75460,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6439:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"6439:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75459,"id":75463,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75456,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75465,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75457,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75475,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75474,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75470,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6553:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6564:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"6553:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75469,"id":75473,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75466,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75475,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75467,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75480,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6677:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6677:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6688:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"6677:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75479,"id":75483,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75476,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75485,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75477,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75495,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75494,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75490,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6796:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6807:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"6796:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75489,"id":75493,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75486,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75495,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75487,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75505,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75504,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75500,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6911:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6922:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"6911:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75499,"id":75503,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75505,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75497,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75515,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75514,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75510,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7032:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7043:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"7032:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75509,"id":75513,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75515,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75507,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75525,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75524,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75520,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7164:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7175:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"7164:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75519,"id":75523,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75516,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75525,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75517,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75535,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75534,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75530,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7296:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7296:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7307:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"7296:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75529,"id":75533,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75526,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75535,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75527,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75545,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75544,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75540,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7422:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7422:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7433:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"7422:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75539,"id":75543,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75536,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75545,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75537,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75555,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75554,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75550,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7536:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7547:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"7536:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75549,"id":75553,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75546,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75555,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75547,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75565,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75564,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75560,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7641:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7641:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7652:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"7641:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75559,"id":75563,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75556,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75558,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75565,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75575,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75574,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75570,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7747:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"7747:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75569,"id":75573,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75566,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75575,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75585,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75584,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75580,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7849:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7860:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"7849:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75579,"id":75583,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75576,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75585,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75577,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75596,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75595,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75591,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7981:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7981:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7992:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"7981:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75590,"id":75594,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75586,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75596,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75588,"nodeType":"UserDefinedTypeName","pathNode":{"id":75587,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83229,"src":"7932:23:160"},"referencedDeclaration":83229,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75627,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75626,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75603],"declarations":[{"constant":false,"id":75603,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75626,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75602,"nodeType":"UserDefinedTypeName","pathNode":{"id":75601,"name":"Storage","nameLocations":["8099:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8099:7:160"},"referencedDeclaration":73928,"src":"8099:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75606,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75604,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8119:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8099:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8143:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75609,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8159:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8157:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75617,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75616,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75613,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"8210:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75615,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75618,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8251:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8249:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75623,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75598,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75625,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75598,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75627,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75597,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75600,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75658,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75657,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75634],"declarations":[{"constant":false,"id":75634,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75657,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75633,"nodeType":"UserDefinedTypeName","pathNode":{"id":75632,"name":"Storage","nameLocations":["8367:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8367:7:160"},"referencedDeclaration":73928,"src":"8367:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75637,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75635,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8387:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8387:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8367:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75638,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8411:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75640,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8427:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8425:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75648,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75647,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75644,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"8477:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75646,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75649,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8517:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8515:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75654,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75656,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75629,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75658,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75628,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75631,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75712,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75711,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75663],"declarations":[{"constant":false,"id":75663,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75711,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75662,"nodeType":"UserDefinedTypeName","pathNode":{"id":75661,"name":"Storage","nameLocations":["8664:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8664:7:160"},"referencedDeclaration":73928,"src":"8664:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75666,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75664,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8684:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8684:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8664:30:160"},{"condition":{"id":75676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75673,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8763:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8759:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75668,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8722:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8720:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83212,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75667,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":75672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8750:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"8710:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75681,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75680,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75677,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73773,"src":"8793:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8793:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75679,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75688,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8894:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8890:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75692,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8902:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75690,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75683,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8854:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75682,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$66120","typeString":"contract IOptInService"}},"id":75687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8880:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":66067,"src":"8840:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":75694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75700,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75699,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75696,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73776,"src":"8939:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8939:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75698,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9005:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9001:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":75708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9013:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":75701,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8984:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"8982:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84212,"src":"8982:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75710,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75659,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75660,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75724,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75723,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9107:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9103:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75715,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9074:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9085:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9074:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84306,"src":"9074:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75722,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75713,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75714,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75736,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75735,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75731,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9204:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9200:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75727,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9172:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9183:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9172:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84259,"src":"9172:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75734,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75725,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75726,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75781,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75780,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75743],"declarations":[{"constant":false,"id":75743,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75780,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75742,"nodeType":"UserDefinedTypeName","pathNode":{"id":75741,"name":"Storage","nameLocations":["9289:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9289:7:160"},"referencedDeclaration":73928,"src":"9289:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75746,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75744,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9309:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9309:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9289:30:160"},{"assignments":[null,75748],"declarations":[null,{"constant":false,"id":75748,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75780,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75747,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75754,"initialValue":{"arguments":[{"id":75752,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75749,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9358:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9356:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"9356:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9330:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75755,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9417:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9401:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75758,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"9422:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75761,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9458:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"9456:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9441:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9422:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9401:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75771,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75770,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75767,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73761,"src":"9500:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75769,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75777,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9553:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9551:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"9551:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9551:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75779,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75738,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75781,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75737,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75839,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75838,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75794],"declarations":[{"constant":false,"id":75794,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75838,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75793,"nodeType":"UserDefinedTypeName","pathNode":{"id":75792,"name":"Storage","nameLocations":["9709:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9709:7:160"},"referencedDeclaration":73928,"src":"9709:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75797,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75795,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9729:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9729:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9709:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75798,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9758:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9754:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75800,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9770:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9768:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9754:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75807,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75806,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75803,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"9799:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9799:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75805,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75808,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75809,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9846:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"9844:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9835:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75816,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75815,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75812,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"9879:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9879:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75814,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9990:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9992:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9990:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75825,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75826,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75827,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10015:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":75818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9945:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"9943:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83222,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75817,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71798","typeString":"contract IDefaultOperatorRewards"}},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9972:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71780,"src":"9919:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":75828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75829,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75833,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75834,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10052:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10048:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10048:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75830,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10038:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10038:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75791,"id":75837,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75783,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75839,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75782,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75785,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75839,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75787,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75839,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75839,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75987,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":75986,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75851],"declarations":[{"constant":false,"id":75851,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":75986,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75850,"nodeType":"UserDefinedTypeName","pathNode":{"id":75849,"name":"Storage","nameLocations":["10249:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"10249:7:160"},"referencedDeclaration":73928,"src":"10249:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75854,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75852,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"10269:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10249:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10298:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10294:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10310:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"10308:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10294:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75864,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75863,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75860,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"10339:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75862,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75865,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75867,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"10396:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10375:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75874,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75873,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75870,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"10431:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10431:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75872,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75876],"declarations":[{"constant":false,"id":75876,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":75986,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75875,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75877,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":75969,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75894],"declarations":[{"constant":false,"id":75894,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":75969,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75893,"nodeType":"UserDefinedTypeName","pathNode":{"id":75892,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83052,"src":"10587:18:160"},"referencedDeclaration":83052,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75899,"initialValue":{"baseExpression":{"expression":{"id":75895,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75898,"indexExpression":{"id":75897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10648:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10623:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75903,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75900,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10672:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10670:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10679:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"10670:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10670:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75911,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75910,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75907,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"10729:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10729:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75909,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75913],"declarations":[{"constant":false,"id":75913,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":75969,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75912,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75923,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75919,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75916,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10813:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10811:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84386,"src":"10811:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":75921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10811:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":75915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10803:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75914,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10803:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10778:71:160"},{"assignments":[75925],"declarations":[{"constant":false,"id":75925,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":75969,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75924,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75940,"initialValue":{"arguments":[{"id":75928,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75844,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75929,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"10906:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":75933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10927:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10921:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75931,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10921:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":75937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10938:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10932:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75935,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10888:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10884:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10864:78:160"},{"expression":{"arguments":[{"expression":{"id":75945,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11014:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"11012:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75947,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75949,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83051,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75951,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75925,"src":"11057:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75942,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75913,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75941,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":75944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10994:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":72068,"src":"10956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75953,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":75967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75954,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75958,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75961,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75963,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83051,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11133:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11129:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:47:160","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":75956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11097:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75955,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11103:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11097:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11097:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11077:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75968,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75883,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10560:6:160","memberName":"length","nodeType":"MemberAccess","src":"10535:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75970,"initializationExpression":{"assignments":[75879],"declarations":[{"constant":false,"id":75879,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":75970,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75878,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75881,"initialValue":{"hexValue":"30","id":75880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10528:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10516:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75889,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75975,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75978,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75980,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11251:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11247:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11247:60:160","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":75973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11215:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75972,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":75974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11221:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11215:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11215:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75971,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11205:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75848,"id":75985,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75842,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":75987,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75841,"nodeType":"UserDefinedTypeName","pathNode":{"id":75840,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"10125:28:160"},"referencedDeclaration":83046,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75844,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":75987,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75843,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75987,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76018,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76017,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75998,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75997,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77094,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76000,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":76002,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76003,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75991,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76001,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77141,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11449:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76005,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76010,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76013,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75991,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11533:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":76011,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11533:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76006,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11500:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11511:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11500:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84212,"src":"11500:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":76015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76016,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75994,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75995,"kind":"modifierInvocation","modifierName":{"id":75993,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":75992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75989,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76018,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75988,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75991,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76018,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75990,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":75996,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76034,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76033,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76030,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76020,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76026,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11638:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11649:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11638:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84306,"src":"11638:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76032,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76023,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76020,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76024,"kind":"modifierInvocation","modifierName":{"id":76022,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76020,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76034,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76019,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76025,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76050,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76049,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76046,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76042,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11756:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11756:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84259,"src":"11756:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76048,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76039,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76040,"kind":"modifierInvocation","modifierName":{"id":76038,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76036,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76050,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76035,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76041,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76098,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76097,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76060],"declarations":[{"constant":false,"id":76060,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76097,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76059,"nodeType":"UserDefinedTypeName","pathNode":{"id":76058,"name":"Storage","nameLocations":["11877:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"11877:7:160"},"referencedDeclaration":73928,"src":"11877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76063,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76061,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11897:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11897:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11877:30:160"},{"assignments":[null,76065],"declarations":[null,{"constant":false,"id":76065,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76097,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76064,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76071,"initialValue":{"arguments":[{"id":76069,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76066,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"11943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11943:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"11943:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11943:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11917:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76072,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11998:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11982:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76075,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12008:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"12003:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76078,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76079,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"12037:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12022:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12003:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11982:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76088,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76087,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76084,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73764,"src":"12078:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76086,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76094,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76089,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"12126:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12135:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"12126:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":76095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12126:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76096,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76055,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76056,"kind":"modifierInvocation","modifierName":{"id":76054,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76052,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76098,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76051,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76057,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76294,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76293,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76109,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12278:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76112,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73836,"src":"12297:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12297:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76108,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76115,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76120,76123],"declarations":[{"constant":false,"id":76120,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76293,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76118,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76119,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76123,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76293,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76121,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76122,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76127,"initialValue":{"arguments":[{"id":76125,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76124,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76437,"src":"12407:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":76126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12407:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12345:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76128,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12467:6:160","memberName":"length","nodeType":"MemberAccess","src":"12451:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76130,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76135,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76134,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76132,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76107,"id":76133,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76137],"declarations":[{"constant":false,"id":76137,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76293,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76136,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76140,"initialValue":{"expression":{"id":76138,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12611:6:160","memberName":"length","nodeType":"MemberAccess","src":"12595:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12583:34:160"},{"body":{"id":76218,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76216,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76165,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76167,"indexExpression":{"id":76166,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12742:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12735:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":76168,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76172,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76169,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12758:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12754:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12747:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12735:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76215,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76214,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76174,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76176,"indexExpression":{"id":76175,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12792:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12785:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76177,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76181,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76178,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12807:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12803:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12796:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76182,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12784:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76183,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76187,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76184,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12825:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12821:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12814:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76188,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12829:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76190,"indexExpression":{"id":76189,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12836:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12829:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12813:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12784:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76193,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76194,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76196,"indexExpression":{"id":76195,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12878:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12862:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76197,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76201,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76198,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12902:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12898:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12882:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76202,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12861:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76203,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76207,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76204,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12929:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12925:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12909:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76208,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76210,"indexExpression":{"id":76209,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12949:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12933:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12908:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12861:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76155,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76156,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12701:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12697:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76159,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12705:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12697:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12693:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76217,"initializationExpression":{"assignments":[76152],"declarations":[{"constant":false,"id":76152,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76217,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76151,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76154,"initialValue":{"hexValue":"30","id":76153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12690:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12678:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76162,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76164,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76145,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76146,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76219,"initializationExpression":{"assignments":[76142],"declarations":[{"constant":false,"id":76142,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76219,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76141,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76144,"initialValue":{"hexValue":"30","id":76143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12644:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12632:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76150,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76221],"declarations":[{"constant":false,"id":76221,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76293,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76220,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76223,"initialValue":{"hexValue":"31","id":76222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13062:26:160"},{"assignments":[76225],"declarations":[{"constant":false,"id":76225,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76293,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76224,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76231,"initialValue":{"baseExpression":{"id":76226,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76230,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76227,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13125:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13141:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13125:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13118:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13098:45:160"},{"body":{"id":76255,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76243,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76245,"indexExpression":{"id":76244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13243:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13236:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76246,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76225,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76250,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76249,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76248,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76251,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13329:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13311:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76254,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76237,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13205:6:160","memberName":"length","nodeType":"MemberAccess","src":"13189:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13185:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76256,"initializationExpression":{"assignments":[76233],"declarations":[{"constant":false,"id":76233,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76256,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76232,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76235,"initialValue":{"id":76234,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76242,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76257,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13372:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13355:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76289,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76288,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76261],"declarations":[{"constant":false,"id":76261,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76288,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76260,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76267,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13522:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13518:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13518:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76264,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13508:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13508:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13500:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76262,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13500:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":76271,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13543:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13500:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13478:79:160"},{"expression":{"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76274,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76278,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76275,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13603:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13587:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13571:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76279,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76285,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76280,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76281,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76261,"src":"13640:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13624:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13654:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13624:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13608:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13571:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76287,"nodeType":"ExpressionStatement","src":"13571:85:160"}]}},{"AST":{"nativeSrc":"13702:62:160","nodeType":"YulBlock","src":"13702:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13723:15:160","nodeType":"YulIdentifier","src":"13723:15:160"},{"name":"maxValidators","nativeSrc":"13740:13:160","nodeType":"YulIdentifier","src":"13740:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13716:6:160","nodeType":"YulIdentifier","src":"13716:6:160"},"nativeSrc":"13716:38:160","nodeType":"YulFunctionCall","src":"13716:38:160"},"nativeSrc":"13716:38:160","nodeType":"YulExpressionStatement","src":"13716:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76120,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76102,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76290,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76291,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76107,"id":76292,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76100,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76294,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76099,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76102,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76294,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76101,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76294,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76104,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76105,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76335,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76334,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76307,76309],"declarations":[{"constant":false,"id":76307,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76334,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76306,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76309,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76334,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76308,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76316,"initialValue":{"arguments":[{"id":76314,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76310,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"13977:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13988:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"13977:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"13977:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13933:83:160"},{"condition":{"id":76322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76318,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76307,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76319,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76320,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"14071:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76317,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"14031:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14031:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76326,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76325,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14097:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":76305,"id":76324,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76327,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76304,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76329,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76330,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76328,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"14127:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14119:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76333,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76301,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76302,"kind":"modifierInvocation","modifierName":{"id":76300,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77151,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76296,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76335,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76295,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76298,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76335,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76297,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76304,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76335,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76303,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76437,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76436,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76351],"declarations":[{"constant":false,"id":76351,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76436,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76350,"nodeType":"UserDefinedTypeName","pathNode":{"id":76349,"name":"Storage","nameLocations":["14415:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"14415:7:160"},"referencedDeclaration":73928,"src":"14415:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76354,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76352,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"14435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14415:30:160"},{"expression":{"id":76364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76355,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14455:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76359,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14487:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14487:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76356,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76357,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14455:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76365,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76366,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14518:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76370,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14543:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14541:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14553:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14541:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14541:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14527:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":76367,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76368,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14527:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14518:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76376,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76378],"declarations":[{"constant":false,"id":76378,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76436,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76377,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76380,"initialValue":{"hexValue":"30","id":76379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14595:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14573:23:160"},{"body":{"id":76433,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76394,76396,76398],"declarations":[{"constant":false,"id":76394,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76433,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76393,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76396,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76433,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76395,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76398,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76433,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76397,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76404,"initialValue":{"arguments":[{"id":76402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76399,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14724:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14722:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"14722:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14722:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14668:80:160"},{"condition":{"id":76410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76406,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76396,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76407,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76408,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14800:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76405,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"14768:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14768:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76413,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76412,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76411,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76414,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76416,"indexExpression":{"id":76415,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14876:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14860:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76417,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76394,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76419,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76420,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76422,"indexExpression":{"id":76421,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14920:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14913:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76424,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76394,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76425,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76423,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"14935:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14935:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14913:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76428,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76429,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15011:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14996:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76432,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76385,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14629:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14627:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14639:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14627:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14623:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76434,"initializationExpression":{"assignments":[76382],"declarations":[{"constant":false,"id":76382,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76434,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76381,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76383,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76392,"nodeType":"ExpressionStatement","src":"14649:3:160"},"nodeType":"ForStatement","src":"14607:416:160"},{"AST":{"nativeSrc":"15058:100:160","nodeType":"YulBlock","src":"15058:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15079:15:160","nodeType":"YulIdentifier","src":"15079:15:160"},{"name":"operatorIdx","nativeSrc":"15096:11:160","nodeType":"YulIdentifier","src":"15096:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15072:6:160","nodeType":"YulIdentifier","src":"15072:6:160"},"nativeSrc":"15072:36:160","nodeType":"YulFunctionCall","src":"15072:36:160"},"nativeSrc":"15072:36:160","nodeType":"YulExpressionStatement","src":"15072:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15128:6:160","nodeType":"YulIdentifier","src":"15128:6:160"},{"name":"operatorIdx","nativeSrc":"15136:11:160","nodeType":"YulIdentifier","src":"15136:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:160","nodeType":"YulIdentifier","src":"15121:6:160"},"nativeSrc":"15121:27:160","nodeType":"YulFunctionCall","src":"15121:27:160"},"nativeSrc":"15121:27:160","nodeType":"YulExpressionStatement","src":"15121:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76344,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76378,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76378,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76347,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76435,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76340,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76341,"kind":"modifierInvocation","modifierName":{"id":76339,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77151,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76337,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76437,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76336,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76344,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76437,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76342,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76343,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76347,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76437,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76345,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76346,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76553,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76552,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76446],"declarations":[{"constant":false,"id":76446,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76552,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76445,"nodeType":"UserDefinedTypeName","pathNode":{"id":76444,"name":"Storage","nameLocations":["15238:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"15238:7:160"},"referencedDeclaration":73928,"src":"15238:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76449,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76447,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"15258:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15258:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15238:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76450,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15287:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15283:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76452,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15299:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"15297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76460,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76459,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76456,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"15350:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15350:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76458,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76550,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76473],"declarations":[{"constant":false,"id":76473,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76550,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76472,"nodeType":"UserDefinedTypeName","pathNode":{"id":76471,"name":"SlashData","nameLocations":["15442:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15442:9:160"},"referencedDeclaration":73942,"src":"15442:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":76477,"initialValue":{"baseExpression":{"id":76474,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76476,"indexExpression":{"id":76475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15478:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15473:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15442:38:160"},{"condition":{"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76481,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15530:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"15520:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76478,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"15499:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15511:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15499:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15499:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76489,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76488,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76485,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73812,"src":"15566:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15566:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76487,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76548,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76503],"declarations":[{"constant":false,"id":76503,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76548,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76502,"nodeType":"UserDefinedTypeName","pathNode":{"id":76501,"name":"VaultSlashData","nameLocations":["15686:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73933,"src":"15686:14:160"},"referencedDeclaration":73933,"src":"15686:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":76508,"initialValue":{"baseExpression":{"expression":{"id":76504,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15722:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15732:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15722:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76507,"indexExpression":{"id":76506,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15739:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15722:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15686:55:160"},{"condition":{"id":76515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76512,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15793:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15783:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76509,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"15765:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15774:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15765:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76520,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76519,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76516,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"15830:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76518,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76522],"declarations":[{"constant":false,"id":76522,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76548,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76521,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76524,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15912:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76523,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15929:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"15905:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15887:51:160"},{"expression":{"arguments":[{"expression":{"id":76534,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16014:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"16012:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76536,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"16026:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76538,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16056:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73932,"src":"16046:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76540,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16074:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73937,"src":"16064:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16088:1:160","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":76543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16078:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76542,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76531,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76522,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76530,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":66489,"src":"15956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76547,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76493,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76494,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15648:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15638:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15655:6:160","memberName":"length","nodeType":"MemberAccess","src":"15638:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15634:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76549,"initializationExpression":{"assignments":[76491],"declarations":[{"constant":false,"id":76491,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76549,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76490,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76492,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76498,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76500,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76465,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15415:6:160","memberName":"length","nodeType":"MemberAccess","src":"15410:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15406:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76551,"initializationExpression":{"assignments":[76462],"declarations":[{"constant":false,"id":76462,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76551,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76461,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76463,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76470,"nodeType":"ExpressionStatement","src":"15423:3:160"},"nodeType":"ForStatement","src":"15390:726:160"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15179:12:160","parameters":{"id":76442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76441,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76553,"src":"15192:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":76439,"nodeType":"UserDefinedTypeName","pathNode":{"id":76438,"name":"SlashData","nameLocations":["15192:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15192:9:160"},"referencedDeclaration":73942,"src":"15192:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":76440,"nodeType":"ArrayTypeName","src":"15192:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15191:27:160"},"returnParameters":{"id":76443,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76622,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76621,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76560,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16213:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16209:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76562,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16223:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16223:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"16223:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76571,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76570,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76567,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"16284:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76569,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76619,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76584],"declarations":[{"constant":false,"id":76584,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76619,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76583,"nodeType":"UserDefinedTypeName","pathNode":{"id":76582,"name":"SlashIdentifier","nameLocations":["16378:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16378:15:160"},"referencedDeclaration":73947,"src":"16378:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":76588,"initialValue":{"baseExpression":{"id":76585,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76557,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76587,"indexExpression":{"id":76586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16419:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16411:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16378:43:160"},{"condition":{"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76593,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16474:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16468:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76589,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16441:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16452:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16441:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"16441:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76601,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76600,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76597,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"16507:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16507:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76599,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76611,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16619:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73946,"src":"16613:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":76615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16636:1:160","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":76614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16626:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76613,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16626:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76604,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16582:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16576:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76603,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16589:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"16569:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76602,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":66499,"src":"16556:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":76617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76618,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76575,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76576,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76557,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:6:160","memberName":"length","nodeType":"MemberAccess","src":"16343:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16339:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76620,"initializationExpression":{"assignments":[76573],"declarations":[{"constant":false,"id":76573,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76620,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76572,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76574,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76579,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76581,"nodeType":"ExpressionStatement","src":"16359:3:160"},"nodeType":"ForStatement","src":"16323:327:160"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16137:12:160","parameters":{"id":76558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76557,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76622,"src":"16150:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":76555,"nodeType":"UserDefinedTypeName","pathNode":{"id":76554,"name":"SlashIdentifier","nameLocations":["16150:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16150:15:160"},"referencedDeclaration":73947,"src":"16150:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":76556,"nodeType":"ArrayTypeName","src":"16150:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16149:36:160"},"returnParameters":{"id":76559,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76693,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76692,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76633],"declarations":[{"constant":false,"id":76633,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76692,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76632,"nodeType":"UserDefinedTypeName","pathNode":{"id":76631,"name":"Storage","nameLocations":["16781:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"16781:7:160"},"referencedDeclaration":73928,"src":"16781:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76634,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16801:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16781:30:160"},{"body":{"id":76690,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76650,76652,76654],"declarations":[{"constant":false,"id":76650,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76690,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76649,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76652,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76690,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76651,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76654,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76690,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76653,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76660,"initialValue":{"arguments":[{"id":76658,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76655,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16950:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16948:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"16948:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16948:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16879:92:160"},{"condition":{"id":76666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76662,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76652,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76663,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76654,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76664,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76626,"src":"17041:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76661,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"16991:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16991:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76669,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76668,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76667,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76670,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76629,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76679,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17162:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"17160:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76681,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76682,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76626,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17198:1:160","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":76684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17188:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76683,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17188:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76673,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76650,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76672,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17139:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"17125:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76671,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":65467,"src":"17110:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":76687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17101:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76689,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76641,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16843:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16841:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16850:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"16841:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16841:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16837:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76691,"initializationExpression":{"assignments":[76638],"declarations":[{"constant":false,"id":76638,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76691,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76637,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76639,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76648,"nodeType":"ExpressionStatement","src":"16860:3:160"},"nodeType":"ForStatement","src":"16821:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16671:33:160","parameters":{"id":76627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76624,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76693,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76623,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76626,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76693,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76625,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76629,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76693,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76628,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76722,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76721,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76704,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17358:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17343:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76707,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76708,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17378:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17363:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76711,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17401:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17385:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76714,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76715,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17422:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17406:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17385:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17384:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":76703,"id":76720,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76695,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76722,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76694,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76697,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76722,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76696,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76699,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76722,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76698,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76722,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76701,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77278,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76739,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76738,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76727,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76724,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:160","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":76729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17555:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76728,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17555:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17547:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76737,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76736,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76733,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"17588:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76735,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76724,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76739,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76723,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76726,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77278,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76827,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76826,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76746,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17715:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"17713:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17729:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17713:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76750,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"17732:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17705:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17705:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76753,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76755,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18102:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18104:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18102:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":76758,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18135:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"18133:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18129:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18102:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76762,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73842,"src":"18148:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18094:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76765,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76767,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18377:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18379:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"18377:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76769,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18402:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18404:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18402:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18377:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76772,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"18427:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18427:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18369:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18369:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76775,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76777,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18667:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"18665:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76779,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18689:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18687:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18665:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76782,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"18712:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18712:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18657:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18657:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76785,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76787,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18842:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"18840:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18860:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18840:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76791,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"18863:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18863:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18832:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76794,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76796,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19112:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19114:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19112:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19139:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19112:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76800,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73854,"src":"19142:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19142:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19104:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76803,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76805,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19221:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"19219:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19241:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19239:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19267:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19269:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"19267:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76813,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73857,"src":"19304:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19304:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19198:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19198:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76816,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19563:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"19561:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":76820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19592:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19561:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76822,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73860,"src":"19595:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19595:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76817,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19553:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19553:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76825,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76742,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76827,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76741,"nodeType":"UserDefinedTypeName","pathNode":{"id":76740,"name":"Storage","nameLocations":["17663:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"17663:7:160"},"referencedDeclaration":73928,"src":"17663:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17662:19:160"},"returnParameters":{"id":76744,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77094,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77093,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76834],"declarations":[{"constant":false,"id":76834,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77093,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76833,"nodeType":"UserDefinedTypeName","pathNode":{"id":76832,"name":"Storage","nameLocations":["19745:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"19745:7:160"},"referencedDeclaration":73928,"src":"19745:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76835,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"19765:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19765:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19745:30:160"},{"condition":{"id":76846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76844,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76839,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19803:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"19801:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76838,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":76843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19828:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"19791:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76851,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76850,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76847,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73752,"src":"19867:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76849,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76853,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76852,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$65208","typeString":"contract IMigratableEntity"}},"id":76855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19935:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":65189,"src":"19909:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"19948:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19909:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76864,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76863,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76860,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"19996:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19996:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76862,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76866,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76865,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20062:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66904,"src":"20047:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76870,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20080:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"20078:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20047:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76877,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76876,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76873,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"20113:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20113:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76875,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76879],"declarations":[{"constant":false,"id":76879,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77093,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76878,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76881,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76880,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66946,"src":"20209:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20181:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76886,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76879,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76887,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20276:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"20274:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20253:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76894,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76893,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76890,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73755,"src":"20320:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20320:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76892,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76896,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76895,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20419:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66922,"src":"20404:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76905,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76904,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76901,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"20466:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20466:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76903,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76908],"declarations":[{"constant":false,"id":76908,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77093,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76907,"nodeType":"UserDefinedTypeName","pathNode":{"id":76906,"name":"IBaseDelegator","nameLocations":["20512:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":65506,"src":"20512:14:160"},"referencedDeclaration":65506,"src":"20512:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":76916,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76911,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76910,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20569:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"20554:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76909,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20539:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20512:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76919,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20623:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"20621:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76917,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20605:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65453,"src":"20595:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":76921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20595:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":76924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20643:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76923,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76922,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20638:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20652:3:160","memberName":"max","nodeType":"MemberAccess","src":"20638:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76940,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76939,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76931,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20725:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76933,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76932,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20720:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20734:3:160","memberName":"max","nodeType":"MemberAccess","src":"20720:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76928,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20681:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65485,"src":"20671:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":76937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76938,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76943,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76942,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20804:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":65445,"src":"20778:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76941,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76739,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76948,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76950,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76949,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20873:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66934,"src":"20858:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76959,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76958,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76955,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73788,"src":"20918:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20918:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76957,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[76961],"declarations":[{"constant":false,"id":76961,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77093,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76960,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76967,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76963,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76962,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20995:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"20980:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20962:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76969,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76968,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$65100","typeString":"contract IEntity"}},"id":76971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21035:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":65093,"src":"21018:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76973,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21047:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"21045:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21018:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76980,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":76979,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76976,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"21089:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21089:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76978,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76982,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76981,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":66186,"src":"21139:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76990,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":76989,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76986,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"21198:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21198:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76988,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[76992],"declarations":[{"constant":false,"id":76992,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77093,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76991,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76994,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76993,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21287:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":66421,"src":"21265:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21243:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76999,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76992,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77000,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"21330:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21315:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77007,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77006,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77003,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"21370:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21370:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77005,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77008,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76992,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77009,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"21432:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77012,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76879,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77018,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77017,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77014,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73800,"src":"21500:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21500:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77016,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77020,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77019,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21568:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":66451,"src":"21546:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":77023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":77024,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21597:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"21595:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21546:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77031,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77030,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77027,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73818,"src":"21645:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21645:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77029,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77033],"declarations":[{"constant":false,"id":77033,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77093,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77032,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77045,"initialValue":{"arguments":[{"expression":{"id":77038,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21743:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"21741:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":77042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21765:1:160","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":77041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21755:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77040,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21755:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77035,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77034,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21732:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":66473,"src":"21710:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21691:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77046,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21802:1:160","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":77048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21794:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77047,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21794:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21782:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77067,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77068,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21948:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21946:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83228,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77076,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77075,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77072,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"22048:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77074,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77077,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77066,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77056,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77057,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21876:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21874:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83228,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21910:1:160","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":77061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21900:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77060,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21900:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77053,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77052,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21842:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":66517,"src":"21820:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":77064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77065,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77079,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77078,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":77081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22178:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66910,"src":"22163:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:1:160","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":77084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22190:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77083,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22190:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22163:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77092,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77091,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77088,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"22223:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22223:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77090,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76829,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77094,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76828,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76831,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77141,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77140,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77108,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22421:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77102,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"22369:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22369:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22380:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"22369:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83220,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77101,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":77107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22412:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"22359:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":77109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77115,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77114,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77111,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73830,"src":"22453:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77113,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77117,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77116,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22535:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71927,"src":"22503:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77121,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77096,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77127,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77126,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77123,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"22575:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22575:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77125,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77129,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77128,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22659:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":72044,"src":"22627:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":77133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22672:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22627:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77139,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77138,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77135,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73806,"src":"22696:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22696:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77137,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77096,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77141,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77095,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77098,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77141,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77097,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77100,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77151,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77150,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77146,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77143,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77145,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22929:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77148,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77149,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77143,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77151,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77142,"name":"uint48","nodeType":"ElementaryTypeName","src":"22908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22907:11:160"},"virtual":false,"visibility":"internal"},{"id":77198,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77197,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77158],"declarations":[{"constant":false,"id":77158,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77197,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77157,"nodeType":"UserDefinedTypeName","pathNode":{"id":77156,"name":"Storage","nameLocations":["23032:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23032:7:160"},"referencedDeclaration":73928,"src":"23032:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77161,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77159,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"23052:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23052:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23032:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77162,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77163,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23087:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23082:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23082:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23076:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77171,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77170,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77167,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23121:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23121:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77169,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77173],"declarations":[{"constant":false,"id":77173,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77197,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77172,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77184,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23185:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23183:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23209:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23207:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23183:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":77181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23252:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23254:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23252:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77179,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23228:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23230:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23228:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23162:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77185,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77186,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77173,"src":"23289:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77188,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23309:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23304:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23304:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77196,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77195,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77192,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23343:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23343:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77194,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77153,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77198,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77152,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77155,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77211,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77210,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77205],"declarations":[{"constant":false,"id":77205,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77210,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77206,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77223,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23481:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23466:32:160"},{"AST":{"nativeSrc":"23534:47:160","nodeType":"YulBlock","src":"23534:47:160","statements":[{"nativeSrc":"23548:23:160","nodeType":"YulAssignment","src":"23548:23:160","value":{"name":"slot","nativeSrc":"23567:4:160","nodeType":"YulIdentifier","src":"23567:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23548:15:160","nodeType":"YulIdentifier","src":"23548:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77202,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77205,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77209,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77199,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77202,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77211,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77201,"nodeType":"UserDefinedTypeName","pathNode":{"id":77200,"name":"Storage","nameLocations":["23428:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23428:7:160"},"referencedDeclaration":73928,"src":"23428:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23427:28:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77223,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77222,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77218,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75080,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77216,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23680:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23668:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23668:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23709:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23668:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77215,"id":77221,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77212,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77223,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77247,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77246,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77231],"declarations":[{"constant":false,"id":77231,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77246,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77236,"initialValue":{"arguments":[{"id":77234,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77225,"src":"23847:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":77232,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23835:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"23820:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23820:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23805:52:160"},{"expression":{"id":77244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77240,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75080,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77237,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23879:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23867:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23867:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23908:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23867:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77243,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77231,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77245,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77228,"kind":"modifierInvocation","modifierName":{"id":77227,"name":"onlyOwner","nameLocations":["23785:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"23785:9:160"},"nodeType":"ModifierInvocation","src":"23785:9:160"}],"name":"_setStorageSlot","nameLocation":"23736:15:160","parameters":{"id":77226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77225,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77247,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77224,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77229,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77257,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77256,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77252,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77249,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77251,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77277,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23978:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77254,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77255,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77249,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77257,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77248,"name":"address","nodeType":"ElementaryTypeName","src":"23953:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23952:15:160"},"virtual":false,"visibility":"internal"},{"id":77277,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77276,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77266,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75083,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77267,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24139:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24135:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":77263,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77259,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77262,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$44539","typeString":"contract IAccessControl"}},"id":77265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24107:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":44506,"src":"24085:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":77269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77275,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77274,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77271,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"24169:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77273,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77259,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77277,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77258,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77261,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75055,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75056,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75057,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75058,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75059,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75060,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75061,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75062,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77278,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77279,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,53880,55791,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860,84112,84115,84118],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"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":"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":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;7983:34:30;7979:146;;-1:-1:-1;2376:21827:160;;;;;;;;1052:13:60;2376:21827:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;8085:29:30;;2376:21827:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2376:21827:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7849:17;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;2357:1:29;2376:21827:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2376:21827:160;;;;;;;;;;;;;;;9103:10;9074:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9074:20;9103:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;13809:372;2376:21827;;:::i;:::-;;;:::i;:::-;22945:2;;;;:::i;:::-;13809:372;:::i;:::-;2376:21827;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7536:21;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7422:30:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7422:30;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7641:21;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7296:34:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7296:34;2376:21827;;;;;;;;;;;;;;;;;;;;;;7747:22;-1:-1:-1;;;;;;;;;;;2376:21827:160;7747:22;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;:::i;:::-;;;;;;7981:20;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;16223:38;;2376:21827;-1:-1:-1;;;;;2376:21827:160;16209:10;:52;16205:108;;2376:21827;;;;16328:9;16339:18;;;;;;2376:21827;;;16359:3;16411:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;8806:28:86;;16441:17:160;;-1:-1:-1;;;;;16468:11:160;2376:21827;16468:11;:::i;:::-;2376:21827;8806:28:86;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;16440:40:160;16436:106;;2376:21827;;-1:-1:-1;;;;;16576:11:160;;;:::i;:::-;2376:21827;;;;;;;;;;16569:29;;;;;;;;;2376:21827;16569:29;;;;;;;16359:3;2376:21827;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16556:83;;16613:11;2376:21827;;16556:83;;2376:21827;;;;;;;;;;;:::i;:::-;16556:83;;-1:-1:-1;;;;;2376:21827:160;16556:83;;;;;;;2376:21827;16556:83;;;16359:3;;2376:21827;16328:9;;16556:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;16569:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;16436:106;-1:-1:-1;;;16507:20:160;;2376:21827;15830:20;16507;16205:108;-1:-1:-1;;;16284:18:160;;2376:21827;8477:18;16284;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;4301:16:30;2376:21827:160;;4724:16:30;;:34;;;;2376:21827:160;4803:1:30;4788:16;:50;;;;2376:21827:160;4853:13:30;:30;;;;2376:21827:160;4849:91:30;;;2376:21827:160;4803:1:30;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;3446:19;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;3501:29;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3564:27;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3622:24;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3676:23;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3736:30;2376:21827;;;;;;;;;4803:1:30;3709:24:160;;2376:21827;;;;;;;;;;3776:27;;;2376:21827;3806:33;2376:21827;;;3877:31;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;;;;3849:25:160;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;3942:27;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;4017:18;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;4002:12;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4068:4;3564:27;2376:21827;;4045:12;;2376:21827;4130:19;2376:21827;4114:13;;;2376:21827;4171:14;2376:21827;;;;;;;;4160:8;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4210:17;2376:21827;;;;;;;;4196:11;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;4255:33;;:::i;:::-;2376:21827;4238:69;;;;;2376:21827;;;;;;;;;;;;;4238:69;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;4343:35:160;;:::i;:::-;2376:21827;4317:91;;;;;2376:21827;;;3446:19;2376:21827;;;;;;;;;4317:91;;4068:4;2376:21827;4317:91;;2376:21827;4317:91;;;;;;;;2376:21827;;;;;;;;17713:17;2376:21827;;;;;;;;;4803:1:30;2376:21827:160;;;;;;;;;;;18102:44;;2376:21827;;;;;3564:27;2376:21827;;18377:48;2376:21827;;;;;;;;18665:45;2376:21827;;3736:30;2376:21827;;;;18840:21;;2376:21827;;;;;;19112:28;;2376:21827;;;19219:44;;;;:::i;:::-;2376:21827;19219:71;2376:21827;;3849:25;2376:21827;;19561:32;2376:21827;;5064:101:30;;2376:21827:160;;;5064:101:30;2376:21827:160;5140:14:30;2376:21827:160;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;4803:1:30;2376:21827:160;;5140:14:30;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;3033:1;2376:21827;;3446:19;2376:21827;;;-1:-1:-1;;;2376:21827:160;;;;;4317:91;;;;;:::i;:::-;2376:21827;;4317:91;;;;2376:21827;;;;4317:91;2376:21827;;;;;;;;;4238:69;;;;;:::i;:::-;2376:21827;;4238:69;;;;2376:21827;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2376:21827:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2376:21827:160;;;;;;;;;;;;;;7164:36;-1:-1:-1;;;;;;;;;;;2376:21827:160;7164:36;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;9356:11;;;;3505:23:170;23973:47:85;2376:21827:160;9356:11;23973:47:85;:::i;:::-;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3505:23;-1:-1:-1;2376:21827:160;;;9401:17;;2376:21827;-1:-1:-1;9401:76:160;;;;2376:21827;9397:144;;;;21805:50:85;;;;:::i;:::-;;2376:21827:160;;9397:144;-1:-1:-1;;;9500:30:160;;2376:21827;9500:30;;9401:76;2376:21827;837:15:87;;;9441:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;9441:36;;:::i;:::-;2376:21827;;;9422:55;9401:76;;;;2376:21827;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;11781:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11756:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11756:17;11781:5;:::i;2376:21827::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8425:29;;2376:21827;;8425:29;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8411:10;:43;8407:99;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21827:160;10308:8;;;;2376:21827;;;;;;;;;10294:10;:22;10290:71;;2376:21827;;;10396:12;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;10375:33;10371:90;;10471:30;;;;;;2376:21827;10516:13;;10670:8;2376:21827;10906:13;10670:8;;;10906:13;;2376:21827;;;;10511:677;10568:3;10535:24;;2376:21827;;10531:35;;;;;10623:27;;;;:::i;:::-;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;2376:21827:160;;;;5197:14:86;;2376:21827:160;;;;;;5197:26:86;10665:99:160;;2376:21827;;;;10884:58;2376:21827;;;;3710:23:170;2376:21827:160;23973:47:85;2376:21827:160;;;;;;;;;23973:47:85;;:::i;3710:23:170:-;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;-1:-1:-1;2376:21827:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10884:58;;;;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;:::i;:::-;10884:58;2376:21827;;10884:58;;;;;;:::i;:::-;2376:21827;;;;11041:14;;;2376:21827;;11041:14;;2376:21827;;11041:14;;-1:-1:-1;;;;;2376:21827:160;;;;;10956:106;;;;;2376:21827;;;;;;;;;;;;;;;;;;;10956:106;;2376:21827;10956:106;;2376:21827;;;;;;;;;;;;;;;;;;;:::i;:::-;10956:106;;;;;;;;;;;;;10568:3;2376:21827;;;11097:80;2376:21827;;;;;;;;;;;;;;;11129:47;;;2376:21827;;;;;;11129:47;;;;;;:::i;:::-;11097:80;:::i;:::-;10568:3;2376:21827;10516:13;;;10956:106;;;;;:::i;:::-;2376:21827;;10956:106;;;;;2376:21827;;;;;;;;;10956:106;2376:21827;;;10531:35;;11215:93;10531:35;;;2376:21827;;;;;11247:60;;;;2376:21827;;;;;;;;;;;;11247:60;;;11129:47;11247:60;;:::i;11215:93::-;2376:21827;;;;;11205:104;2376:21827;;;;;;10371:90;-1:-1:-1;;;10431:19:160;;2376:21827;20113:19;10431;10290:71;-1:-1:-1;;;10339:11:160;;2376:21827;9799:11;10339;2376:21827;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;9768:8;;;2376:21827;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;9754:10;:22;;;9750:71;;9844:12;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9835:21;;9831:78;;9943:27;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9919:101;;;;;;2376:21827;;;;;;;;;;;;9919:101;;2376:21827;9919:101;;2376:21827;;;;;;;;;;;;;;;9919:101;;;;;;;;2376:21827;;;;;;10048:30;;;;2376:21827;;;;;;;;10048:30;;;2376:21827;10048:30;;:::i;:::-;2376:21827;10038:41;;2376:21827;;;;;;9919:101;;;;;;:::i;:::-;2376:21827;;9919:101;;;;2376:21827;;;;;;;;;9831:78;-1:-1:-1;;;9879:19:160;;2376:21827;20113:19;9879;9750:71;-1:-1:-1;;;9799:11:160;;2376:21827;9799:11;;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;2376:21827:160;;3975:40:29;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8157:30;;2376:21827;;8157:30;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8143:10;:44;8139:101;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;8139:101;-1:-1:-1;;;8210:19:160;;2376:21827;15350:19;8210;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;6429:44:30;;;;;2376:21827:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6959:1:30;;-1:-1:-1;;;;;2376:21827:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;2376:21827:160;;;;;;;1800:178:73;2376:21827:160;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;6591:4:30;5155:33:160;;2376:21827;;;6591:4:30;5119:33:160;;2376:21827;;;;;;;;;;4573:1;5237:36;;2376:21827;4573:1;5198:36;;2376:21827;5364:63;5320:34;;;-1:-1:-1;;;;;2376:21827:160;;;;5283:34;;5320;5283;;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;5364:63;5461:21;;;;2376:21827;5437:21;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;5516:21;;;2376:21827;5492:21;;;2376:21827;5572:22;;;;2376:21827;5547:22;;;2376:21827;5624:17;;;;2376:21827;5604:17;;;2376:21827;;;;;;;;;;;5674:20;5651;;;;5674;;2376:21827;;;;;;-1:-1:-1;;5729:20:160;5850;;;;5710:13;5729:20;;;;5710:13;5760:3;2376:21827;;5725:33;;;;;5810:26;5850:36;5810:26;6591:4:30;5810:26:160;;;:::i;:::-;5850:36;;;:::i;:::-;;2376:21827;5710:13;;5725:33;-1:-1:-1;5931:17:160;6046;;;;5725:33;5931:17;5725:33;5959:3;2376:21827;;5927:30;;;;;6009:23;6046:33;6009:23;6591:4:30;6009:23:160;;;:::i;:::-;6046:33;;;:::i;:::-;;2376:21827;5912:13;;5927:30;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6654:20:30;2376:21827:160;;;4573:1;2376:21827;;6654:20:30;2376:21827:160;;;;;;-1:-1:-1;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2376:21827:160;;6496:23:30;6429:44;4573:1:160;2376:21827;;-1:-1:-1;;;;;2376:21827:160;6448:25:30;;6429:44;;;2376:21827:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2376:21827:160;4815:4:60;4807:23;4803:145;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2376:21827:160;;4908:29:60;2376:21827:160;-1:-1:-1;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2376:21827:160;4392:4:60;4384:23;;;:120;;;;2376:21827:160;4367:251:60;;;2303:62:29;;:::i;:::-;2376:21827:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;5865:52:60;;;;;;;2376:21827:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2376:21827:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;2407:36:53;2376:21827:160;;2407:36:53;2376:21827:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2376:21827:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2376:21827:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2376:21827:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2376:21827:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2376:21827:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2376:21827:160;;;6026:34:60;;5865:52;;;;2376:21827:160;5865:52:60;;2376:21827:160;5865:52:60;;;;;;2376:21827:160;5865:52:60;;;:::i;:::-;;;2376:21827:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2376:21827:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;9200:10;9172:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9172:20;9200:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;11664:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11638:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11638:17;11664:5;:::i;2376:21827::-;;;;;;;;;;;;;;;7032:33;-1:-1:-1;;;;;;;;;;;2376:21827:160;7032:33;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;8720:28;;;2376:21827;;;-1:-1:-1;;;8710:60:160;;8759:10;2376:21827;8710:60;;2376:21827;;;;;;8710:60;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8710:60;;;;;;;;;;;2376:21827;8709:61;;8705:121;;8854:24;;;2376:21827;;;-1:-1:-1;;;8840:76:160;;8759:10;2376:21827;8840:76;;2376:21827;8910:4;8710:60;2376:21827;;;;;;;;8840:76;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8840:76;;;;;;;;;;;2376:21827;8839:77;;8835:137;;2166:50:170;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;8759:10;8982:11;8759:10;8982:11;;2166:50:170;:::i;:::-;2165:51;2161:103;;2376:21827:160;;2161:103:170;-1:-1:-1;;;2239:14:170;;2376:21827:160;;2239:14:170;8835:137:160;-1:-1:-1;;;8939:22:160;;2376:21827;8939:22;;8840:76;;;;2376:21827;8840:76;2376:21827;8840:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;8705:121;-1:-1:-1;;;8793:22:160;;2376:21827;8793:22;;8710:60;;;;2376:21827;8710:60;2376:21827;8710:60;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;11943:8;;;;3505:23:170;23973:47:85;2376:21827:160;11943:8;23973:47:85;:::i;3505:23:170:-;-1:-1:-1;2376:21827:160;;;11982:17;;2376:21827;-1:-1:-1;11982:73:160;;;;2376:21827;11978:138;;;;21805:50:85;;;;:::i;11978:138:160:-;-1:-1:-1;;;12078:27:160;;2376:21827;12078:27;;11982:73;2376:21827;837:15:87;;;12022:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;12022:33;;:::i;:::-;2376:21827;;;12003:52;11982:73;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;15297:30;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;15283:10;:44;15279:101;;15395:9;2376:21827;;15390:726;15423:3;2376:21827;;;;;15406:15;;;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15520:18:160;2376:21827;;;15520:18;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15498:41:160;15494:110;;15623:9;15663:3;15638:16;;;;2376:21827;;;15638:16;:::i;:::-;15634:27;;;;;;;15722:19;15638:16;15722;15638;;;2376:21827;;;15722:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15783:15:160;;;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15764:35:160;15760:109;;2376:21827;;;;;;-1:-1:-1;;;;;15912:15:160;2376:21827;15912:15;:::i;:::-;2376:21827;;;;;;;;;;15905:33;;;;;;;;;;;;;15663:3;16012:12;2376:21827;16012:12;;2376:21827;;16026:18;2376:21827;;;16026:18;:::i;:::-;16064:12;;;2376:21827;;;;;;;;16064:12;;;;2376:21827;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;15956:135;;2376:21827;15956:135;;2376:21827;;;;;;;;;;;16046:16;2376:21827;;;;;;16064:12;;;2376:21827;;;;;;;;;;;;;;;;:::i;:::-;15956:135;;-1:-1:-1;;;;;2376:21827:160;15956:135;;;;;;;2376:21827;15956:135;;;15663:3;;2376:21827;15623:9;;15956:135;;;;;;;;;;;;;:::i;:::-;;;;;15905:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15634:27;;;2376:21827;15634:27;;2376:21827;15395:9;;;15494:110;-1:-1:-1;;;15566:23:160;;2376:21827;15566:23;;15406:15;;2376:21827;;15279:101;-1:-1:-1;;;15350:19:160;;2376:21827;15350:19;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;19801:11;;;2376:21827;;;-1:-1:-1;;;19791:53:160;;-1:-1:-1;;;;;2376:21827:160;;;;19791:53;;2376:21827;;;;;;;;;;;;;;;19791:53;;;;;;;2376:21827;19791:53;;;2376:21827;19790:54;;19786:109;;2376:21827;;-1:-1:-1;;;19909:35:160;;2376:21827;;;;19909:35;;;;;;;;2376:21827;19909:35;;;2376:21827;19948:25;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;19909:64;19905:128;;2376:21827;;-1:-1:-1;;;20047:27:160;;2376:21827;;;;20047:27;;;;;;;;2376:21827;20047:27;;;2376:21827;-1:-1:-1;20078:12:160;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;20047:43;20043:100;;2376:21827;;-1:-1:-1;;;20209:30:160;;2376:21827;;;;20209:30;;;;;;;;2376:21827;20209:30;;;2376:21827;;;;;;;;;;;20253:44;;;20249:107;;2376:21827;;-1:-1:-1;;;20404:39:160;;2376:21827;;;;20404:39;;;;;;;;2376:21827;20404:39;;;2376:21827;20403:40;;20399:103;;2376:21827;;-1:-1:-1;;;20554:26:160;;2376:21827;;;;20554:26;;;;;;;;2376:21827;20554:26;;;2376:21827;-1:-1:-1;2376:21827:160;20621:12;;;2376:21827;;;;-1:-1:-1;;;20595:39:160;;;;;2376:21827;20621:12;;-1:-1:-1;;;;;2376:21827:160;;;;;;;20595:39;;;;;;;2376:21827;20595:39;;;2376:21827;-1:-1:-1;20595:60:160;20591:158;;2376:21827;;;;;;;;;;;;;20778:32;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;17543:82;;2376:21827;;-1:-1:-1;;;20858:37:160;;2376:21827;;;;20858:37;;;;;;;;;;;;2376:21827;20857:38;;20853:99;;2376:21827;;-1:-1:-1;;;20980:24:160;;2376:21827;;;;20980:24;;;;;;;;;;;;2376:21827;-1:-1:-1;2376:21827:160;;-1:-1:-1;;;21018:23:160;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;21018:23;;;;;;;;;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;21018:48;21014:111;;2376:21827;;-1:-1:-1;;;21139:36:160;;2376:21827;;;;21139:36;;;;;;;;;;;;2376:21827;21135:98;;;2376:21827;;-1:-1:-1;;;21265:36:160;;2376:21827;;;;21265:36;;;;;;;;;;;;2376:21827;;;;;;;;;;;21315:32;21311:92;;21417:39;2376:21827;21432:24;;;;;2376:21827;;21417:39;;:::i;:::-;2376:21827;21417:60;21413:119;;2376:21827;;-1:-1:-1;;;21546:46:160;;2376:21827;;;;21546:46;;;;;;;;;;;;2376:21827;21595:27;;;;2376:21827;-1:-1:-1;21542:139:160;;2376:21827;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;21710:58;;2376:21827;21710:58;;2376:21827;;;;;;;;;;;:::i;:::-;21710:58;;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;21782:22;;;-1:-1:-1;21874:24:160;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;21820:93;;;;;2376:21827;;;;;;;;;;;;;;;;;21820:93;;;2376:21827;21820:93;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;21820:93;;;;;;;;;;;;;21778:299;;;;2376:21827;;-1:-1:-1;;;22163:23:160;;;2376:21827;;;22163:23;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22163:37;22159:94;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;22369:41;;;2376:21827;;;;;;;;;;;22359:71;;;2376:21827;22359:71;;2376:21827;22359:71;;;;;;;;;;;21778:299;22358:72;;22354:135;;2376:21827;;-1:-1:-1;;;22503:39:160;;;2376:21827;;;22503:39;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22503:49;22499:114;;2376:21827;;-1:-1:-1;;;22627:41:160;;;2376:21827;;;22627:41;;;;;;;;;-1:-1:-1;;;;;22627:41:160;21595:27;22627:41;;;;;21778:299;2376:21827;;;22627:46;22623:118;;11500:17;2166:50:170;837:15:87;;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;11500:17:160;2166:50:170;:::i;22623:118:160:-;-1:-1:-1;;;22696:34:160;;2376:21827;22696:34;;22627:41;;;;;;-1:-1:-1;22627:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;22499:114;-1:-1:-1;;;22575:27:160;;2376:21827;22575:27;;22503:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21827;;;;;;;;;22354:135;-1:-1:-1;;;22453:25:160;;2376:21827;22453:25;;22359:71;;;;;;;;;;;;;;:::i;:::-;;;;22159:94;-1:-1:-1;;;22223:19:160;;2376:21827;22223:19;;22163:23;;;;;;;;;;;;;;:::i;:::-;;;;21820:93;;;;;:::i;:::-;2376:21827;;21820:93;;;;21778:299;21946:24;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;21934:36;;-1:-1:-1;21778:299:160;;-1:-1:-1;21930:147:160;-1:-1:-1;;;22048:18:160;;2376:21827;22048:18;;21710:58;;;;;;;;;;;;;;:::i;:::-;;;;21542:139;-1:-1:-1;;;21645:25:160;;2376:21827;21645:25;;21546:46;;;2376:21827;21546:46;;2376:21827;21546:46;;;;;;2376:21827;21546:46;;;:::i;:::-;;;2376:21827;;;;;21546:46;;;2376:21827;-1:-1:-1;2376:21827:160;;21546:46;;;-1:-1:-1;21546:46:160;;21413:119;-1:-1:-1;;;21500:21:160;;2376:21827;21500:21;;21311:92;-1:-1:-1;;;21370:22:160;;2376:21827;21370:22;;21265:36;;;;2376:21827;21265:36;2376:21827;21265:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21135:98;-1:-1:-1;;;21198:24:160;;2376:21827;21198:24;;21139:36;;;;2376:21827;21139:36;2376:21827;21139:36;;;;;;;:::i;:::-;;;;21014:111;-1:-1:-1;;;21089:25:160;;2376:21827;21089:25;;21018:23;-1:-1:-1;;;;;21018:23:160;;;;;;2376:21827;21018:23;2376:21827;21018:23;;;;;;;:::i;:::-;;;;;;20980:24;;;;2376:21827;20980:24;2376:21827;20980:24;;;;;;;:::i;:::-;;;;20853:99;-1:-1:-1;;;20918:23:160;;2376:21827;20918:23;;20858:37;;;;2376:21827;20858:37;2376:21827;20858:37;;;;;;;:::i;:::-;;;;17543:82;-1:-1:-1;;;;;;17588:26:160;;2376:21827;17588:26;;20778:32;;;;2376:21827;20778:32;2376:21827;20778:32;;;;;;;:::i;:::-;;;;20591:158;20671:67;;;;;2376:21827;;-1:-1:-1;;;20671:67:160;;2376:21827;;20671:67;;2376:21827;;;-1:-1:-1;;2376:21827:160;;;;;20671:67;2376:21827;;20671:67;;;;;;;;;20591:158;;;;20671:67;;;;;2376:21827;20671:67;;:::i;:::-;2376:21827;;;20671:67;;;2376:21827;;;;;;;;;20595:39;;;2376:21827;20595:39;;2376:21827;20595:39;;;;;;2376:21827;20595:39;;;:::i;:::-;;;2376:21827;;;;;20595:39;;;;;;-1:-1:-1;20595:39:160;;20554:26;;;;2376:21827;20554:26;2376:21827;20554:26;;;;;;;:::i;:::-;;;;20399:103;20466:25;;;2376:21827;20466:25;2376:21827;;20466:25;20404:39;;;;2376:21827;20404:39;2376:21827;20404:39;;;;;;;:::i;:::-;;;;20249:107;20320:25;;;2376:21827;20320:25;2376:21827;;20320:25;20209:30;;;;2376:21827;20209:30;2376:21827;20209:30;;;;;;;:::i;:::-;;;;20043:100;20113:19;;;2376:21827;20113:19;2376:21827;;20113:19;20047:27;;;;2376:21827;20047:27;2376:21827;20047:27;;;;;;;:::i;:::-;;;;19905:128;19996:26;;;2376:21827;19996:26;2376:21827;;19996:26;19909:35;;;;2376:21827;19909:35;2376:21827;19909:35;;;;;;;:::i;:::-;;;;19786:109;19867:17;;;2376:21827;19867:17;2376:21827;;19867:17;19791:53;;;;2376:21827;19791:53;2376:21827;19791:53;;;;;;;:::i;:::-;;;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12161:1642::-;;12278:17;;2376:21827;;12407:29;;;:::i;:::-;2376:21827;;;12451:39;;;;12447:92;;12294:1;20638:17;;2376:21827;;;;;12627:368;12647:5;;;;;;13062:26;;;;12701:1;20638:17;;;2376:21827;;;;;;;;13118:25;;;;:::i;:::-;2376:21827;13158:25;13153:188;13213:3;2376:21827;;13185:26;;;;;13236:9;;;;;:::i;:::-;2376:21827;13236:22;13232:66;;12701:1;2376:21827;;;;;;;12701:1;13311:19;13213:3;2376:21827;13158:25;;;13232:66;13278:5;;;;;;;;;13153:188;12701:1;13355:18;;13351:316;;13153:188;13677:87;;;;;12161:1642;:::o;13351:316::-;2376:21827;;13518:20;;;2376:21827;;;;;;;;;;13518:20;;;;;;;:::i;:::-;2376:21827;13508:31;;2376:21827;;;;;13624:27;2376:21827;;13624:27;;:::i;:::-;-1:-1:-1;;2376:21827:160;;;;;;;13571:85;;-1:-1:-1;;;;;2376:21827:160;13608:48;;;;:::i;:::-;2376:21827;;;13571:85;;:::i;:::-;2376:21827;13351:316;;;;;2376:21827;;;;12294:1;2376:21827;;;;;12294:1;2376:21827;13185:26;;;;;;;;;;;;12654:3;12678:13;;;;;;;;;12294:1;12673:312;12708:3;2376:21827;;;;;-1:-1:-1;;2376:21827:160;;;;;;12693:13;;;;;12735:9;;;;:::i;:::-;2376:21827;12701:1;2376:21827;;;;;;;;12747:13;;;12701:1;12747:13;;;;;;:::i;:::-;2376:21827;-1:-1:-1;12731:240:160;;12708:3;;;;2376:21827;12678:13;;;12731:240;12861:91;2376:21827;12814:13;12784:55;12814:13;;;;;:::i;:::-;2376:21827;12829:9;;;;;:::i;:::-;2376:21827;12784:55;;;;:::i;:::-;2376:21827;12784:55;:::i;:::-;2376:21827;;;;;;12909:22;;;;:::i;:::-;2376:21827;;;12861:91;2376:21827;;;;;12933:18;;;;:::i;:::-;2376:21827;;;12861:91;;:::i;:::-;2376:21827;12731:240;;;;;12693:13;;;;;12701:1;12693:13;;;;;;2376:21827;12632:13;;;12447:92;12506:22;;;;;;;:::o;2376:21827::-;;;;12294:1;2376:21827;;12294:1;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;:::i;:::-;:::o;14224:940::-;;22945:2;;;:::i;:::-;14487:11;-1:-1:-1;;;;;;;;;;;2376:21827:160;14487:11;2376:21827;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;-1:-1:-1;14612:9:160;-1:-1:-1;14607:416:160;14623:24;;;;;;15033:125;;;;;;;;;14376:23;14224:940;:::o;14649:3::-;3215:12:170;;;;3268:14;14768:35:160;3215:12:170;;;;;:::i;:::-;3268:14;;;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3268:14;14768:35:160;;;:::i;:::-;14767:36;14763:83;;14860:39;14935:47;14860:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21827:160;;;;14935:47;:::i;:::-;14913:69;;;;:::i;:::-;2376:21827;15011:1;2376:21827;;;;;;;15011:1;14996:16;14649:3;14612:9;2376:21827;14612:9;;;;;14763:83;14823:8;;15011:1;14823:8;;;13809:372;;14031:43;2376:21827;3505:23:170;23973:47:85;13977:20:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;13977:20;2376:21827;;;;;;;23973:47:85;;:::i;14031:43:160:-;14030:44;14026:83;;14127:47;;;:::i;:::-;13809:372;:::o;14026:83::-;14090:8;;-1:-1:-1;14090:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2376:21827:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2376:21827:160;;3509:1:29;3534:31;24020:181:160;2376:21827;;-1:-1:-1;;;24085:61:160;;2979:4;24085:61;;;2376:21827;24135:10;2979:4;;;2376:21827;;2979:4;;2376:21827;;24085:61;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;24085:61;;;;;;;2979:4;24085:61;;;24020:181;24084:62;;24080:115;;24020:181::o;24080:115::-;24169:15;;;2979:4;24169:15;24085:61;2979:4;24169:15;24085:61;;;;2979:4;24085:61;2979:4;24085:61;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2626:351:170:-;2376:21827:160;;2779:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2779:23:170:-;2376:21827:160;;;;;2817:16:170;;;:37;;;;;2626:351;2813:87;;;2910:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;1716:2:170;2376:21827:160;;1667:52:170;1740:2;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2910:60;:::i;:::-;;2626:351::o;2813:87::-;2877:12;;;-1:-1:-1;2877:12:170;;-1:-1:-1;2877:12:170;2817:37;2376:21827:160;;;;2837:17:170;;2817:37;;;2276:344;2376:21827:160;;2428:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2428:23:170:-;2376:21827:160;;;;2466:16:170;;:37;;;;2276:344;2462:91;;;2563:50;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2563:50;:::i;2462:91::-;2526:16;;;-1:-1:-1;2526:16:170;;-1:-1:-1;2526:16:170;2466:37;2376:21827:160;;;;2486:17:170;2466:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2376:21827:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;5004:11:85;2376:21827:160;;;-1:-1:-1;2376:21827:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;3096:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;7898:23:86;:::i;22972:408:160:-;-1:-1:-1;;;;;;;;;;;2376:21827:160;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;;;;23076:22;;23072:80;;23284:16;2376:21827;;;;;;;;;;;;23183:42;;;:87;:42;;;:87;;23284:16;:::i;:::-;2376:21827;837:15:87;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;23284:36;;23280:94;;22972:408::o;23280:94::-;23121:20;;;-1:-1:-1;23343:20:160;;-1:-1:-1;23343:20:160;23183:87;;;;23284:16;:::i;17224:208::-;2376:21827;;17343:16;;;;17224:208;;17343:16;:37;;17224:208;17343:82;;;;17336:89;;17224:208;:::o;17343:82::-;2376:21827;;17385:17;;;-1:-1:-1;2376:21827:160;17385:39;;;;17343:82;;17224:208;:::o;17385:39::-;2376:21827;;-1:-1:-1;17406:18:160;;-1:-1:-1;17224:208:160;:::o;17343:37::-;2376:21827;;;-1:-1:-1;17363:17:160;;-1:-1:-1;17343:37:160;;;16662:556;-1:-1:-1;;;;;;;;;;;2376:21827:160;16841:8;;;2376:21827;;17125:25;17160:12;;;2376:21827;;;16662:556;2376:21827;;;;;;;16662:556;16837:21;;;;;;16662:556;;;;;;;;:::o;16860:3::-;3215:12:170;;;;;;;;3268:14;16991:53:160;3215:12:170;;;;;:::i;16991:53:160:-;16990:54;16986:101;;2376:21827;;-1:-1:-1;;;17125:25:160;;2376:21827;;;;;17125:25;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;17125:25;;;;;;;2376:21827;17125:25;;;2376:21827;17125:25;;;16860:3;2376:21827;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17110:91:160;;17125:25;17110:91;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17110:91;;-1:-1:-1;;;;;2376:21827:160;17110:91;;;;;;;2376:21827;17110:91;;;16860:3;17101:100;;;2376:21827;17101:100;;:::i;:::-;16860:3;16826:9;2376:21827;16826:9;;;;;;;;;17110:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21827;;;;;;17110:91;;;;;;;17125:25;;;;;;;;;;;;;;:::i;:::-;;;;16986:101;17064:8;;2376:21827;17064:8;;;14296:213:83;2376:21827:160;14374:24:83;;14370:103;;2376:21827:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2376:21827:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2376:21827:160;-1:-1:-1;2376:21827:160;3433:11:85;;;2376:21827:160;;-1:-1:-1;2376:21827:160;;;;8192:26:86;:::i;7082:141:30:-;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2376:21827:160;-1:-1:-1;2376:21827:160;5743:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2376:21827:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;;-1:-1:-1;2376:21827:160;;;-1:-1:-1;2376:21827:160;:::o;3071:1368:86:-;;3266:14;;;2376:21827:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;20638:17;2376:21827;;;;3777:23:86;;;3773:378;;3298:1135;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;20638:17;;2376:21827;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2376:21827:160:-;;;;;;;;;;;;3773:378:86;2376:21827:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2376:21827:160;;;;;;3961:23:86;;;;;:::i;:::-;2376:21827:160;;;;;;;;;;20638:17;;;2376:21827;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2376:21827:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2376:21827:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2376:21827:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2376:21827:160;;;;4933:24:66;2376:21827:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;2581:21:86;;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2376:21827:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"46093":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AlreadyAdded()\":[{\"details\":\"Thrown when an address is already added to the map.\"}],\"AlreadyEnabled()\":[{\"details\":\"Thrown when an address is already enabled.\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotEnabled()\":[{\"details\":\"Thrown when an address is not enabled.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/Middleware.sol\":{\"keccak256\":\"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1\",\"dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8","urls":["bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1","dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":77284,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84267],"IAccessControl":[44539],"IBaseDelegator":[65506],"IDefaultOperatorRewards":[71798],"IDefaultStakerRewards":[71992],"IEntity":[65100],"IMiddleware":[74131],"IMigratableEntity":[65208],"INetworkMiddlewareService":[65994],"INetworkRegistry":[64998],"IOptInService":[66120],"IRegistry":[65332],"IVault":[66856],"IVetoSlasher":[66518],"MapWithTimeData":[84555],"Middleware":[77283],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75013,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75015,"nodeType":"ImportDirective","src":"100:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75014,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75017,"nodeType":"ImportDirective","src":"202:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75016,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75019,"nodeType":"ImportDirective","src":"343:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75018,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75021,"nodeType":"ImportDirective","src":"425:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75020,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75023,"nodeType":"ImportDirective","src":"514:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75022,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75025,"nodeType":"ImportDirective","src":"595:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75024,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75027,"nodeType":"ImportDirective","src":"670:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75026,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75029,"nodeType":"ImportDirective","src":"757:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75028,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75031,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75030,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75033,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":84268,"symbolAliases":[{"foreign":{"id":75032,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75035,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":84556,"symbolAliases":[{"foreign":{"id":75034,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75037,"nodeType":"ImportDirective","src":"985:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75036,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75039,"nodeType":"ImportDirective","src":"1067:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75038,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75041,"nodeType":"ImportDirective","src":"1152:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75040,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75043,"nodeType":"ImportDirective","src":"1226:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75042,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75045,"nodeType":"ImportDirective","src":"1320:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75044,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75047,"nodeType":"ImportDirective","src":"1398:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75046,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75049,"nodeType":"ImportDirective","src":"1489:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75048,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75051,"nodeType":"ImportDirective","src":"1600:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75050,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75053,"nodeType":"ImportDirective","src":"1687:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75052,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75055,"nodeType":"ImportDirective","src":"1772:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75054,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75057,"nodeType":"ImportDirective","src":"1843:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75056,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75059,"nodeType":"ImportDirective","src":"1974:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":77284,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75058,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77283,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75071,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75068,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75070,"nodeType":"UserDefinedTypeName","pathNode":{"id":75069,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2515:13:160","2529:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2515:30:160"},"referencedDeclaration":56867,"src":"2515:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75075,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75072,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84555,"src":"2557:15:160"},"typeName":{"id":75074,"nodeType":"UserDefinedTypeName","pathNode":{"id":75073,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2577:13:160","2591:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2577:30:160"},"referencedDeclaration":56867,"src":"2577:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75079,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75076,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75078,"nodeType":"UserDefinedTypeName","pathNode":{"id":75077,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2638:13:160","2652:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":57162,"src":"2638:33:160"},"referencedDeclaration":57162,"src":"2638:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$57162_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":75082,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75080,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75081,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75085,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77283,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":75088,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77283,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2979:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":75091,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77283,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75089,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":75099,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75098,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75095,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75097,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75092,"nodeType":"StructuredDocumentation","src":"3041:63:160","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75093,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75094,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75253,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75252,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75108,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"3261:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75107,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"3246:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75111,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75112,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75114,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3345:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":75115,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77252,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75118,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75121],"declarations":[{"constant":false,"id":75121,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75252,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75120,"nodeType":"UserDefinedTypeName","pathNode":{"id":75119,"name":"Storage","nameLocations":["3389:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"3389:7:160"},"referencedDeclaration":73928,"src":"3389:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75124,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75122,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"3409:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3409:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3389:30:160"},{"expression":{"id":75130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75125,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3432:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"3430:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75128,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3454:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73864,"src":"3446:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3430:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75131,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75132,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3477:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"3475:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75135,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3509:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73866,"src":"3501:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3475:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75138,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75139,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3542:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"3540:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75142,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3572:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73868,"src":"3564:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3540:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75145,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75146,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3603:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"3601:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75149,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73870,"src":"3622:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3601:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75152,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75153,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3658:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"3656:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75156,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73872,"src":"3676:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3656:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75159,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75160,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3711:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"3709:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75163,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3744:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73874,"src":"3736:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3709:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75166,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75167,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3776:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3778:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"3776:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75170,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3806:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73880,"src":"3806:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3776:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75173,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3849:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3851:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"3849:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75177,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73876,"src":"3877:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3849:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75180,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"3918:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3920:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"3918:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"3942:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3950:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73878,"src":"3942:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75187,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75188,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4004:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"4002:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75191,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4025:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73884,"src":"4017:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4002:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75194,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75195,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4047:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"4045:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75203,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75091,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75200,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77283","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77283","typeString":"contract Middleware"}],"id":75199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4060:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75198,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4074:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64940,"src":"4060:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":75204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4045:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75206,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75207,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4116:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"4114:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75210,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73882,"src":"4130:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75213,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75214,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4162:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"4160:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75217,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"4171:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4160:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75220,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75221,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4198:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"4196:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75224,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4218:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4210:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75227,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75229,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"4255:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4263:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4255:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83376,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75228,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64998","typeString":"contract INetworkRegistry"}},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4290:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64997,"src":"4238:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75235,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75244,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77283","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77283","typeString":"contract Middleware"}],"id":75243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4394:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75242,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75237,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75102,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4343:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83378,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75236,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65994","typeString":"contract INetworkMiddlewareService"}},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4380:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65993,"src":"4317:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":75246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75247,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75249,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"4436:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":75248,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76832,"src":"4419:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73928_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":75250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75251,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75105,"kind":"modifierInvocation","modifierName":{"id":75104,"name":"initializer","nameLocations":["3224:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"3224:11:160"},"nodeType":"ModifierInvocation","src":"3224:11:160"}],"name":"initialize","nameLocation":"3177:10:160","parameters":{"id":75103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75102,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75253,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75101,"nodeType":"UserDefinedTypeName","pathNode":{"id":75100,"name":"InitParams","nameLocations":["3188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"3188:10:160"},"referencedDeclaration":73890,"src":"3188:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3187:29:160"},"returnParameters":{"id":75106,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75450,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75449,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75263,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"4601:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75262,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4586:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75266,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75269],"declarations":[{"constant":false,"id":75269,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75449,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75268,"nodeType":"UserDefinedTypeName","pathNode":{"id":75267,"name":"Storage","nameLocations":["4620:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4620:7:160"},"referencedDeclaration":73928,"src":"4620:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75272,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75270,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"4649:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4620:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":75274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":75273,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77252,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75276,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75279],"declarations":[{"constant":false,"id":75279,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75449,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75278,"nodeType":"UserDefinedTypeName","pathNode":{"id":75277,"name":"Storage","nameLocations":["4730:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4730:7:160"},"referencedDeclaration":73928,"src":"4730:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75280,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"4759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4730:39:160"},{"expression":{"id":75288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75283,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4780:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75286,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4816:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4805:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4780:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75289,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75290,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4848:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4837:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75293,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4883:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4872:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4837:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75296,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75297,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4925:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4914:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75300,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4958:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4947:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4914:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75303,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75304,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4998:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"4987:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75307,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5017:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"5017:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4987:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75310,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75311,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5065:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5054:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75314,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5083:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5094:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5083:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5054:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75317,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75318,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5130:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5119:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75321,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5155:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5166:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5155:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5119:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75324,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75325,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5209:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5198:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75328,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5237:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5237:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5198:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75331,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75332,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5294:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5283:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75335,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5320:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5320:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5283:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75338,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75339,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5375:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5364:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75342,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5408:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5397:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5364:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75345,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75346,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5448:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5437:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75349,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5472:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5461:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5437:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75352,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75353,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5503:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5492:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75356,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5527:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5516:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5492:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75359,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75360,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5558:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5547:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75363,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5572:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5547:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75366,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75367,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5604:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75370,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5624:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5604:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75373,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75374,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75377,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75380,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75413,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75395,75397],"declarations":[{"constant":false,"id":75395,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75413,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75394,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75397,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75413,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75396,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75403,"initialValue":{"arguments":[{"id":75401,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75382,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75398,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5810:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5821:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5810:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5831:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"5810:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5779:57:160"},{"expression":{"arguments":[{"id":75409,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75395,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75397,"src":"5880:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75404,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5861:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5850:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5871:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"5850:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75412,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75385,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75382,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75386,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5740:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5729:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5729:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5725:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75414,"initializationExpression":{"assignments":[75382],"declarations":[{"constant":false,"id":75382,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75414,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75381,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75384,"initialValue":{"hexValue":"30","id":75383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5722:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5710:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75382,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75393,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75447,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75429,75431],"declarations":[{"constant":false,"id":75429,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75447,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75428,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75431,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75447,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75430,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75437,"initialValue":{"arguments":[{"id":75435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75416,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75432,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6020:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6009:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6027:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"6009:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5978:54:160"},{"expression":{"arguments":[{"id":75443,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75429,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75431,"src":"6073:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75438,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75279,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6046:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"6046:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6046:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75446,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75416,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75420,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5942:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"5931:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5949:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5931:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5927:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75448,"initializationExpression":{"assignments":[75416],"declarations":[{"constant":false,"id":75416,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75448,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75415,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75418,"initialValue":{"hexValue":"30","id":75417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5912:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75425,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75416,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75427,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75254,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75257,"kind":"modifierInvocation","modifierName":{"id":75256,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75260,"kind":"modifierInvocation","modifierName":{"id":75258,"name":"reinitializer","nameLocations":["4559:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"4559:13:160"},"nodeType":"ModifierInvocation","src":"4559:16:160"}],"name":"reinitialize","nameLocation":"4527:12:160","parameters":{"id":75255,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75261,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75460,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75459,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75451,"nodeType":"StructuredDocumentation","src":"6102:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":75457,"kind":"modifierInvocation","modifierName":{"id":75456,"name":"onlyOwner","nameLocations":["6333:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6333:9:160"},"nodeType":"ModifierInvocation","src":"6333:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6270:17:160","overrides":{"id":75455,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75453,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75460,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75452,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75458,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75470,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75469,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75465,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"6439:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"6439:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75464,"id":75468,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75461,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75470,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75462,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75480,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75479,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75475,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"6553:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6564:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"6553:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75474,"id":75478,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75471,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75480,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75472,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75490,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75489,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75485,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"6677:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6677:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6688:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"6677:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75484,"id":75488,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75481,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75490,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75482,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75500,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75499,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75495,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"6796:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6807:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"6796:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75494,"id":75498,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75491,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75500,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75492,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75510,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75509,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75505,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"6911:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6922:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"6911:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75504,"id":75508,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75501,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75510,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75502,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75520,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75519,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75515,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7032:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7043:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"7032:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75514,"id":75518,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75511,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75520,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75512,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75530,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75529,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75525,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7164:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7175:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"7164:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75524,"id":75528,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75521,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75530,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75522,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75540,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75539,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75535,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7296:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7296:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7307:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"7296:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75534,"id":75538,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75531,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75540,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75532,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75550,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75549,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75545,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7422:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7422:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7433:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"7422:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75544,"id":75548,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75541,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75550,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75542,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75560,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75559,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75555,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7536:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7547:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"7536:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75554,"id":75558,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75551,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75560,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75552,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75570,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75569,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75565,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7641:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7641:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7652:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"7641:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75564,"id":75568,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75561,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75570,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75580,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75579,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75575,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7747:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"7747:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75574,"id":75578,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75571,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75580,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75572,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75590,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75589,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75585,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7849:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7860:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"7849:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75584,"id":75588,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75581,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75590,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75582,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75601,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75600,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75596,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"7981:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7981:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7992:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"7981:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75595,"id":75599,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75591,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75601,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75593,"nodeType":"UserDefinedTypeName","pathNode":{"id":75592,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83391,"src":"7932:23:160"},"referencedDeclaration":83391,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75632,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75631,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75608],"declarations":[{"constant":false,"id":75608,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75631,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75607,"nodeType":"UserDefinedTypeName","pathNode":{"id":75606,"name":"Storage","nameLocations":["8099:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8099:7:160"},"referencedDeclaration":73928,"src":"8099:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75611,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75609,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"8119:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8099:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75612,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8143:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75614,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75608,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8159:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8157:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83386,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75622,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75621,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75618,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"8210:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75620,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75623,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75608,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8251:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8249:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83386,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75628,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75630,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75603,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75632,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75602,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75605,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75663,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75662,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75639],"declarations":[{"constant":false,"id":75639,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75662,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75638,"nodeType":"UserDefinedTypeName","pathNode":{"id":75637,"name":"Storage","nameLocations":["8367:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8367:7:160"},"referencedDeclaration":73928,"src":"8367:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75642,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75640,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"8387:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8387:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8367:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75643,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8411:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75645,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75639,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8427:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8425:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83388,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75653,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75652,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75649,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"8477:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75651,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75654,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75639,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8517:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8515:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83388,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75659,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75661,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75634,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75663,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75633,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75636,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75717,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75716,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75668],"declarations":[{"constant":false,"id":75668,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75716,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75667,"nodeType":"UserDefinedTypeName","pathNode":{"id":75666,"name":"Storage","nameLocations":["8664:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8664:7:160"},"referencedDeclaration":73928,"src":"8664:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75671,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75669,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"8684:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8684:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8664:30:160"},{"condition":{"id":75681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75678,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8763:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8759:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75673,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75668,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8722:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8720:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83374,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75672,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":75677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8750:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"8710:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75686,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75685,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75682,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73773,"src":"8793:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8793:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75684,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8894:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8890:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75697,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77283","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77283","typeString":"contract Middleware"}],"id":75696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8902:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75695,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75688,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75668,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8854:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83380,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75687,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$66120","typeString":"contract IOptInService"}},"id":75692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8880:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":66067,"src":"8840:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":75699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75705,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75704,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75701,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73776,"src":"8939:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8939:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75703,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75711,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9005:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9001:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":75713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9013:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":75706,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75668,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8984:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"8982:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84380,"src":"8982:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75715,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75664,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75665,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75729,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75728,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75724,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9107:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9103:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75720,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"9074:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9085:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9074:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84474,"src":"9074:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75727,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75718,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75719,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75741,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75740,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9204:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9200:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75732,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"9172:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9183:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9172:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84427,"src":"9172:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75739,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75730,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75731,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75786,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75785,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75748],"declarations":[{"constant":false,"id":75748,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75785,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75747,"nodeType":"UserDefinedTypeName","pathNode":{"id":75746,"name":"Storage","nameLocations":["9289:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9289:7:160"},"referencedDeclaration":73928,"src":"9289:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75751,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75749,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"9309:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9309:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9289:30:160"},{"assignments":[null,75753],"declarations":[null,{"constant":false,"id":75753,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75785,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75752,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75759,"initialValue":{"arguments":[{"id":75757,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75754,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9358:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9356:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84533,"src":"9356:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9330:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75760,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75753,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9417:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9401:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75763,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"9422:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75766,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75753,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75767,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9458:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"9456:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9441:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9422:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9401:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75776,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75775,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75772,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73761,"src":"9500:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75774,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75782,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75777,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9553:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9551:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"9551:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9551:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75784,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75743,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75786,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75742,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75745,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75844,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75843,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75799],"declarations":[{"constant":false,"id":75799,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75843,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75798,"nodeType":"UserDefinedTypeName","pathNode":{"id":75797,"name":"Storage","nameLocations":["9709:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9709:7:160"},"referencedDeclaration":73928,"src":"9709:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75802,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75800,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"9729:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9729:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9709:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75803,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9758:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9754:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75805,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9770:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9768:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9754:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75812,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75811,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75808,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"9799:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9799:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75810,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75813,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75788,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75814,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9846:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"9844:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9835:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75821,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75820,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75817,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"9879:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9879:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75819,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75828,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"9990:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9992:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9990:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75830,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75788,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75831,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75790,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75832,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75792,"src":"10015:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":75823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9945:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"9943:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83384,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75822,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71798","typeString":"contract IDefaultOperatorRewards"}},"id":75827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9972:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71780,"src":"9919:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":75833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75834,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75838,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75790,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75839,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75792,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10052:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10048:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10048:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75835,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10038:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10038:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75796,"id":75842,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75788,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75844,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75787,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75790,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75844,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75789,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75792,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75844,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75844,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75992,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":75991,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75856],"declarations":[{"constant":false,"id":75856,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":75991,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75855,"nodeType":"UserDefinedTypeName","pathNode":{"id":75854,"name":"Storage","nameLocations":["10249:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"10249:7:160"},"referencedDeclaration":73928,"src":"10249:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75859,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75857,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"10269:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10249:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75860,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10298:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10294:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75862,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10310:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"10308:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10294:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75869,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75868,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75865,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"10339:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75867,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75870,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83199,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75872,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"10396:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10375:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75879,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75878,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75875,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"10431:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10431:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75877,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75881],"declarations":[{"constant":false,"id":75881,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":75991,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75880,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75882,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":75974,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75899],"declarations":[{"constant":false,"id":75899,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":75974,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75898,"nodeType":"UserDefinedTypeName","pathNode":{"id":75897,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83206,"src":"10587:18:160"},"referencedDeclaration":83206,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75904,"initialValue":{"baseExpression":{"expression":{"id":75900,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83195,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83206_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75903,"indexExpression":{"id":75902,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"10648:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10623:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75908,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75899,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83203,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75905,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10672:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10670:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10679:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"10670:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10670:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75916,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75915,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75912,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"10729:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10729:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75914,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75918],"declarations":[{"constant":false,"id":75918,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":75974,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75917,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75928,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75924,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75899,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83203,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75921,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10813:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10811:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84554,"src":"10811:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":75926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10811:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":75920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10803:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75919,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10803:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10778:71:160"},{"assignments":[75930],"declarations":[{"constant":false,"id":75930,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":75974,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75929,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75945,"initialValue":{"arguments":[{"id":75933,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75849,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75934,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"10906:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":75938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10927:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10921:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75936,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10921:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":75942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10938:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10932:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75940,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75931,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10888:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10884:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10864:78:160"},{"expression":{"arguments":[{"expression":{"id":75950,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75856,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11014:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"11012:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75952,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83199,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75954,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75899,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83205,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75956,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75930,"src":"11057:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75947,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75918,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75946,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":75949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10994:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":72068,"src":"10956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75958,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":75972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75959,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75881,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75963,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75881,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75966,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75899,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83203,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75968,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75899,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83206_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83205,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11133:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11129:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:47:160","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":75961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11097:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75960,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11103:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11097:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11097:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11077:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75973,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75888,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83195,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83206_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10560:6:160","memberName":"length","nodeType":"MemberAccess","src":"10535:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75975,"initializationExpression":{"assignments":[75884],"declarations":[{"constant":false,"id":75884,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":75975,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75883,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75886,"initialValue":{"hexValue":"30","id":75885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10528:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10516:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75894,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75980,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75881,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75983,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83197,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75985,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75847,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83199,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11251:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11247:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11247:60:160","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":75978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11215:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75977,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":75979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11221:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11215:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11215:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75976,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11205:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75853,"id":75990,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75847,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":75992,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75846,"nodeType":"UserDefinedTypeName","pathNode":{"id":75845,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83200,"src":"10125:28:160"},"referencedDeclaration":83200,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75849,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":75992,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75848,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75992,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76023,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76022,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76003,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75994,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76002,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76005,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":76007,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75994,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76008,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76006,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77146,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":76009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11449:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76010,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76015,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75994,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76018,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11533:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":76016,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11533:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76011,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"11500:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11511:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11500:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84380,"src":"11500:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":76020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76021,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75999,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75994,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76000,"kind":"modifierInvocation","modifierName":{"id":75998,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77262,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":75997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75994,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76023,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75993,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75996,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76023,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75995,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":76001,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76039,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76038,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76035,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76025,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76031,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"11638:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11649:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11638:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84474,"src":"11638:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76037,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76028,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76025,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76029,"kind":"modifierInvocation","modifierName":{"id":76027,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77262,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76025,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76039,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76024,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76030,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76055,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76054,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76051,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76041,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76047,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"11756:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11756:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84427,"src":"11756:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76053,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76044,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76041,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76045,"kind":"modifierInvocation","modifierName":{"id":76043,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77262,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76041,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76055,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76040,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76046,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76103,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76102,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76065],"declarations":[{"constant":false,"id":76065,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76102,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76064,"nodeType":"UserDefinedTypeName","pathNode":{"id":76063,"name":"Storage","nameLocations":["11877:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"11877:7:160"},"referencedDeclaration":73928,"src":"11877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76066,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"11897:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11897:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11877:30:160"},{"assignments":[null,76070],"declarations":[null,{"constant":false,"id":76070,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76102,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76069,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76076,"initialValue":{"arguments":[{"id":76074,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76057,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76071,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"11943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11943:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84533,"src":"11943:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11943:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11917:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76077,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11998:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11982:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76080,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12008:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"12003:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76083,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76084,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"12037:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12022:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12003:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11982:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76093,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76092,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76089,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73764,"src":"12078:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76091,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76099,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76057,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76094,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"12126:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12135:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"12126:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":76100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12126:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76101,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76060,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76057,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76061,"kind":"modifierInvocation","modifierName":{"id":76059,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77262,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76057,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76103,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76056,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76062,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76299,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76298,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76114,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12278:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76117,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73836,"src":"12297:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12297:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76120,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76125,76128],"declarations":[{"constant":false,"id":76125,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76298,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76123,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76124,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76128,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76298,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76126,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76127,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76132,"initialValue":{"arguments":[{"id":76130,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76129,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76442,"src":"12407:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":76131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12407:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12345:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76133,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12467:6:160","memberName":"length","nodeType":"MemberAccess","src":"12451:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76135,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76140,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76139,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76137,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76112,"id":76138,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76142],"declarations":[{"constant":false,"id":76142,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76298,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76141,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76145,"initialValue":{"expression":{"id":76143,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12611:6:160","memberName":"length","nodeType":"MemberAccess","src":"12595:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12583:34:160"},{"body":{"id":76223,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76221,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76170,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76172,"indexExpression":{"id":76171,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12742:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12735:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":76173,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76177,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76174,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12758:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12754:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12747:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12735:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76220,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76219,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76179,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76181,"indexExpression":{"id":76180,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12792:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12785:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76182,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76186,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76183,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12807:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12803:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12796:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76187,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12784:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76188,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76192,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76189,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12825:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12821:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12814:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76193,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"12829:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76195,"indexExpression":{"id":76194,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12836:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12829:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76196,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12813:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12784:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76198,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76199,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76201,"indexExpression":{"id":76200,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12878:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12862:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76202,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76206,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76203,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12902:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12898:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12882:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76207,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12861:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76208,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76212,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76209,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12929:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12925:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12909:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76213,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76215,"indexExpression":{"id":76214,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12949:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12933:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12908:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12861:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76218,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76160,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76161,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12701:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12697:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76164,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12705:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12697:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12693:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76222,"initializationExpression":{"assignments":[76157],"declarations":[{"constant":false,"id":76157,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76222,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76156,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76159,"initialValue":{"hexValue":"30","id":76158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12690:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12678:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76167,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76169,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76150,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76151,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76224,"initializationExpression":{"assignments":[76147],"declarations":[{"constant":false,"id":76147,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76224,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76146,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76149,"initialValue":{"hexValue":"30","id":76148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12644:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12632:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76147,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76155,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76226],"declarations":[{"constant":false,"id":76226,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76298,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76225,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76228,"initialValue":{"hexValue":"31","id":76227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13062:26:160"},{"assignments":[76230],"declarations":[{"constant":false,"id":76230,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76298,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76229,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76236,"initialValue":{"baseExpression":{"id":76231,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76235,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76232,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"13125:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13141:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13125:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13118:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13098:45:160"},{"body":{"id":76260,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76248,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76128,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76250,"indexExpression":{"id":76249,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76238,"src":"13243:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13236:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76251,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76230,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76255,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76254,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76253,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76256,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76226,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13329:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13311:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76259,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76238,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76242,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13205:6:160","memberName":"length","nodeType":"MemberAccess","src":"13189:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13185:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76261,"initializationExpression":{"assignments":[76238],"declarations":[{"constant":false,"id":76238,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76261,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76237,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76240,"initialValue":{"id":76239,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76245,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76238,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76247,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76262,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76226,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13372:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13355:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76294,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76293,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76266],"declarations":[{"constant":false,"id":76266,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76293,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76265,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76278,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76272,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76270,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13522:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13518:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13518:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76269,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13508:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13508:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13500:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76267,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13500:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":76276,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76226,"src":"13543:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13500:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13478:79:160"},{"expression":{"id":76291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76279,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76283,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76280,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13603:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13587:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13571:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76284,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76290,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76285,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76107,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76286,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76266,"src":"13640:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13624:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13654:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13624:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13608:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13571:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76292,"nodeType":"ExpressionStatement","src":"13571:85:160"}]}},{"AST":{"nativeSrc":"13702:62:160","nodeType":"YulBlock","src":"13702:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13723:15:160","nodeType":"YulIdentifier","src":"13723:15:160"},{"name":"maxValidators","nativeSrc":"13740:13:160","nodeType":"YulIdentifier","src":"13740:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13716:6:160","nodeType":"YulIdentifier","src":"13716:6:160"},"nativeSrc":"13716:38:160","nodeType":"YulFunctionCall","src":"13716:38:160"},"nativeSrc":"13716:38:160","nodeType":"YulExpressionStatement","src":"13716:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76125,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76107,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76295,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76296,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76112,"id":76297,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76105,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76299,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76104,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76107,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76299,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76106,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76299,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76109,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76110,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76340,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76339,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76312,76314],"declarations":[{"constant":false,"id":76312,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76339,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76311,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76314,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76339,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76313,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76321,"initialValue":{"arguments":[{"id":76319,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76301,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76315,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"13977:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13988:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"13977:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84533,"src":"13977:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13933:83:160"},{"condition":{"id":76327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76323,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76312,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76324,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76314,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76325,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76303,"src":"14071:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76322,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"14031:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14031:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76331,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76330,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14097:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":76310,"id":76329,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76332,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76334,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76301,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76335,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76303,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76333,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"14127:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14119:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76338,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76306,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76303,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76307,"kind":"modifierInvocation","modifierName":{"id":76305,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77156,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76301,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76340,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76300,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76303,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76340,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76302,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76309,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76340,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76308,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76442,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76441,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76356],"declarations":[{"constant":false,"id":76356,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76441,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76355,"nodeType":"UserDefinedTypeName","pathNode":{"id":76354,"name":"Storage","nameLocations":["14415:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"14415:7:160"},"referencedDeclaration":73928,"src":"14415:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76359,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76357,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"14435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14415:30:160"},{"expression":{"id":76369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76360,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76349,"src":"14455:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76364,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"14487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14487:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14487:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76361,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76362,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14455:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76370,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76371,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"14518:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76375,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14543:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14541:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14553:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14541:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14541:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14527:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":76372,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76373,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14527:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14518:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76381,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76383],"declarations":[{"constant":false,"id":76383,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76441,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76382,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76385,"initialValue":{"hexValue":"30","id":76384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14595:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14573:23:160"},{"body":{"id":76438,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76399,76401,76403],"declarations":[{"constant":false,"id":76399,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76438,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76398,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76401,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76438,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76400,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76403,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76438,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76402,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76409,"initialValue":{"arguments":[{"id":76407,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76387,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76404,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14724:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14722:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84509,"src":"14722:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14722:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14668:80:160"},{"condition":{"id":76415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76411,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76401,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76412,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76403,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76413,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"14800:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76410,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"14768:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14768:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76418,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76417,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76416,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76419,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76349,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76421,"indexExpression":{"id":76420,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"14876:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14860:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76422,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76399,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76424,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76425,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76427,"indexExpression":{"id":76426,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"14920:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14913:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76429,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76399,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76430,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76428,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"14935:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14935:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14913:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76433,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76434,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15011:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14996:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76437,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76389,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76387,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76390,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14629:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14627:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14639:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14627:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14623:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76439,"initializationExpression":{"assignments":[76387],"declarations":[{"constant":false,"id":76387,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76439,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76386,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76388,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76395,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76387,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76397,"nodeType":"ExpressionStatement","src":"14649:3:160"},"nodeType":"ForStatement","src":"14607:416:160"},{"AST":{"nativeSrc":"15058:100:160","nodeType":"YulBlock","src":"15058:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15079:15:160","nodeType":"YulIdentifier","src":"15079:15:160"},{"name":"operatorIdx","nativeSrc":"15096:11:160","nodeType":"YulIdentifier","src":"15096:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15072:6:160","nodeType":"YulIdentifier","src":"15072:6:160"},"nativeSrc":"15072:36:160","nodeType":"YulFunctionCall","src":"15072:36:160"},"nativeSrc":"15072:36:160","nodeType":"YulExpressionStatement","src":"15072:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15128:6:160","nodeType":"YulIdentifier","src":"15128:6:160"},{"name":"operatorIdx","nativeSrc":"15136:11:160","nodeType":"YulIdentifier","src":"15136:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:160","nodeType":"YulIdentifier","src":"15121:6:160"},"nativeSrc":"15121:27:160","nodeType":"YulFunctionCall","src":"15121:27:160"},"nativeSrc":"15121:27:160","nodeType":"YulExpressionStatement","src":"15121:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76349,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76383,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76383,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76352,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76440,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76345,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76342,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76346,"kind":"modifierInvocation","modifierName":{"id":76344,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77156,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76342,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76442,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76341,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76349,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76442,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76347,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76348,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76352,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76442,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76350,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76351,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76558,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76557,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76451],"declarations":[{"constant":false,"id":76451,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76557,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76450,"nodeType":"UserDefinedTypeName","pathNode":{"id":76449,"name":"Storage","nameLocations":["15238:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"15238:7:160"},"referencedDeclaration":73928,"src":"15238:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76454,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76452,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"15258:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15258:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15238:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76455,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15287:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15283:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76457,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76451,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15299:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"15297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83386,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76465,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76464,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76461,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"15350:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15350:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76463,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76555,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76478],"declarations":[{"constant":false,"id":76478,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76555,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76477,"nodeType":"UserDefinedTypeName","pathNode":{"id":76476,"name":"SlashData","nameLocations":["15442:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15442:9:160"},"referencedDeclaration":73942,"src":"15442:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":76482,"initialValue":{"baseExpression":{"id":76479,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76481,"indexExpression":{"id":76480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76467,"src":"15478:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15473:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15442:38:160"},{"condition":{"id":76489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76486,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76478,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15530:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"15520:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76483,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76451,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"15499:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15511:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15499:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15499:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76494,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76493,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76490,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73812,"src":"15566:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15566:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76492,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76553,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76508],"declarations":[{"constant":false,"id":76508,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76553,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76507,"nodeType":"UserDefinedTypeName","pathNode":{"id":76506,"name":"VaultSlashData","nameLocations":["15686:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73933,"src":"15686:14:160"},"referencedDeclaration":73933,"src":"15686:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":76513,"initialValue":{"baseExpression":{"expression":{"id":76509,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76478,"src":"15722:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15732:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15722:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76512,"indexExpression":{"id":76511,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76496,"src":"15739:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15722:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15686:55:160"},{"condition":{"id":76520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76517,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76508,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15793:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15783:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76514,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76451,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"15765:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15774:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15765:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76525,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76524,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76521,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"15830:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76523,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76527],"declarations":[{"constant":false,"id":76527,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76553,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76526,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76534,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76529,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76508,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15912:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76528,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15929:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"15905:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15887:51:160"},{"expression":{"arguments":[{"expression":{"id":76539,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76451,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16014:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"16012:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76541,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76478,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"16026:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76543,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76508,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16056:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73932,"src":"16046:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76545,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76478,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16074:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73937,"src":"16064:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16088:1:160","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":76548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16078:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76547,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76536,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76527,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76535,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":66489,"src":"15956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76552,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76498,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76496,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76499,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76478,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15648:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15638:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15655:6:160","memberName":"length","nodeType":"MemberAccess","src":"15638:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15634:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76554,"initializationExpression":{"assignments":[76496],"declarations":[{"constant":false,"id":76496,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76554,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76495,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76497,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76503,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76496,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76505,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76467,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76470,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15415:6:160","memberName":"length","nodeType":"MemberAccess","src":"15410:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15406:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76556,"initializationExpression":{"assignments":[76467],"declarations":[{"constant":false,"id":76467,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76556,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76466,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76468,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76473,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76467,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76475,"nodeType":"ExpressionStatement","src":"15423:3:160"},"nodeType":"ForStatement","src":"15390:726:160"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15179:12:160","parameters":{"id":76447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76446,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76558,"src":"15192:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":76444,"nodeType":"UserDefinedTypeName","pathNode":{"id":76443,"name":"SlashData","nameLocations":["15192:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15192:9:160"},"referencedDeclaration":73942,"src":"15192:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":76445,"nodeType":"ArrayTypeName","src":"15192:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15191:27:160"},"returnParameters":{"id":76448,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76627,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76626,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76565,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16213:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16209:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76567,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"16223:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16223:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"16223:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83388,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76576,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76575,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76572,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"16284:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76574,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76624,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76589],"declarations":[{"constant":false,"id":76589,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76624,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76588,"nodeType":"UserDefinedTypeName","pathNode":{"id":76587,"name":"SlashIdentifier","nameLocations":["16378:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16378:15:160"},"referencedDeclaration":73947,"src":"16378:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":76593,"initialValue":{"baseExpression":{"id":76590,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76592,"indexExpression":{"id":76591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76578,"src":"16419:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16411:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16378:43:160"},{"condition":{"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76598,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16474:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16468:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76594,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"16441:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16452:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16441:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"16441:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76606,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76605,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76602,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"16507:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16507:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76604,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76616,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16619:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73946,"src":"16613:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":76620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16636:1:160","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":76619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16626:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76618,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16626:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76609,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16582:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16576:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76608,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16589:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"16569:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76607,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":66499,"src":"16556:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":76622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76623,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76580,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76578,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76581,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:6:160","memberName":"length","nodeType":"MemberAccess","src":"16343:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16339:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76625,"initializationExpression":{"assignments":[76578],"declarations":[{"constant":false,"id":76578,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76625,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76577,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76579,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76584,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76578,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76586,"nodeType":"ExpressionStatement","src":"16359:3:160"},"nodeType":"ForStatement","src":"16323:327:160"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16137:12:160","parameters":{"id":76563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76562,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76627,"src":"16150:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":76560,"nodeType":"UserDefinedTypeName","pathNode":{"id":76559,"name":"SlashIdentifier","nameLocations":["16150:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16150:15:160"},"referencedDeclaration":73947,"src":"16150:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":76561,"nodeType":"ArrayTypeName","src":"16150:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16149:36:160"},"returnParameters":{"id":76564,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76698,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76697,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76638],"declarations":[{"constant":false,"id":76638,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76697,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76637,"nodeType":"UserDefinedTypeName","pathNode":{"id":76636,"name":"Storage","nameLocations":["16781:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"16781:7:160"},"referencedDeclaration":73928,"src":"16781:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76641,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76639,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"16801:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16781:30:160"},{"body":{"id":76695,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76655,76657,76659],"declarations":[{"constant":false,"id":76655,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76695,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76654,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76657,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76695,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76656,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76659,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76695,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76658,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76665,"initialValue":{"arguments":[{"id":76663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76643,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76660,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16950:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16948:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84509,"src":"16948:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16948:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16879:92:160"},{"condition":{"id":76671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76667,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76657,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76668,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76659,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76669,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76631,"src":"17041:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76666,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"16991:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16991:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76674,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76673,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76672,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76675,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76634,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76684,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17162:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"17160:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76686,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76629,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76687,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76631,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17198:1:160","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":76689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17188:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76688,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17188:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76678,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76677,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17139:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"17125:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76676,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":65467,"src":"17110:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":76692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17101:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76694,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76645,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76643,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76646,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16843:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16841:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16850:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"16841:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16841:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16837:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76696,"initializationExpression":{"assignments":[76643],"declarations":[{"constant":false,"id":76643,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76696,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76642,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76644,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76643,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76653,"nodeType":"ExpressionStatement","src":"16860:3:160"},"nodeType":"ForStatement","src":"16821:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16671:33:160","parameters":{"id":76632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76629,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76698,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76628,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76631,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76698,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76630,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76634,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76698,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76633,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76727,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76726,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76709,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76700,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17358:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17343:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76712,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76700,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76713,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"17378:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17363:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76716,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76702,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17401:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17385:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76719,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76702,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76720,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"17422:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17406:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17385:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17384:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":76708,"id":76725,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76700,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76727,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76699,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76702,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76727,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76701,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76704,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76727,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76703,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76727,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76706,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77283,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76744,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76743,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76732,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76729,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:160","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":76734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17555:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76733,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17555:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17547:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76742,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76741,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76738,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"17588:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76740,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76729,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76744,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76728,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76731,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77283,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76832,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76831,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76751,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17715:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"17713:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17729:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17713:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76755,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"17732:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76750,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17705:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17705:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76758,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76760,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18102:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18104:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18102:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":76763,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18135:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"18133:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18129:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18102:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76767,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73842,"src":"18148:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18094:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76770,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18377:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18379:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"18377:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76774,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18402:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18404:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18402:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18377:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76777,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"18427:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18427:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76771,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18369:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18369:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76780,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76782,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18667:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"18665:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76784,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18689:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18687:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18665:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76787,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"18712:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18712:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76781,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18657:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18657:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76790,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76792,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18842:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"18840:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18860:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18840:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76796,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"18863:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18863:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76791,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18832:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76799,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76801,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"19112:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19114:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19112:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19139:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19112:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76805,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73854,"src":"19142:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19142:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76800,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19104:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76808,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19221:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"19219:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76812,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19241:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19239:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76815,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"19267:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19269:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"19267:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76818,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73857,"src":"19304:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19304:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76809,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19198:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19198:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76821,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76747,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19563:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"19561:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":76825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19592:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19561:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76827,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73860,"src":"19595:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19595:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76822,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19553:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19553:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76830,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76747,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76832,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76746,"nodeType":"UserDefinedTypeName","pathNode":{"id":76745,"name":"Storage","nameLocations":["17663:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"17663:7:160"},"referencedDeclaration":73928,"src":"17663:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17662:19:160"},"returnParameters":{"id":76749,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77099,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77098,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76839],"declarations":[{"constant":false,"id":76839,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77098,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76838,"nodeType":"UserDefinedTypeName","pathNode":{"id":76837,"name":"Storage","nameLocations":["19745:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"19745:7:160"},"referencedDeclaration":73928,"src":"19745:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76842,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76840,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"19765:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19765:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19745:30:160"},{"condition":{"id":76851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76849,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76844,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19803:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"19801:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83372,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76843,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19828:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"19791:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76856,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76855,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76852,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73752,"src":"19867:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76854,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76858,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76857,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$65208","typeString":"contract IMigratableEntity"}},"id":76860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19935:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":65189,"src":"19909:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76862,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"19948:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19909:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76869,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76868,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76865,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"19996:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19996:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76867,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76871,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76870,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20062:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66904,"src":"20047:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76875,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20080:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"20078:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20047:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76882,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76881,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76878,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"20113:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20113:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76880,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76884],"declarations":[{"constant":false,"id":76884,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77098,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76883,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76890,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76886,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76885,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66946,"src":"20209:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20181:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76891,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76884,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76892,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20276:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"20274:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20253:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76899,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76898,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76895,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73755,"src":"20320:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20320:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76897,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76901,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76900,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20419:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66922,"src":"20404:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76910,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76909,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76906,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"20466:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20466:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76908,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76913],"declarations":[{"constant":false,"id":76913,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77098,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76912,"nodeType":"UserDefinedTypeName","pathNode":{"id":76911,"name":"IBaseDelegator","nameLocations":["20512:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":65506,"src":"20512:14:160"},"referencedDeclaration":65506,"src":"20512:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":76921,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76916,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76915,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20569:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"20554:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76914,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20539:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20512:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76924,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20623:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"20621:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76922,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76913,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20605:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65453,"src":"20595:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":76926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20595:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":76929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20643:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76928,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76927,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20638:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20652:3:160","memberName":"max","nodeType":"MemberAccess","src":"20638:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76945,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76944,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76936,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75091,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20725:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76938,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76937,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20720:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20734:3:160","memberName":"max","nodeType":"MemberAccess","src":"20720:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76933,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76913,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20681:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65485,"src":"20671:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":76942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76943,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76948,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76913,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76947,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20804:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":65445,"src":"20778:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76946,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76744,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76953,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76955,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76954,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20873:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66934,"src":"20858:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76964,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76963,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76960,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73788,"src":"20918:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20918:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76962,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[76966],"declarations":[{"constant":false,"id":76966,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77098,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76965,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76968,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76967,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20995:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"20980:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20962:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76974,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76973,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$65100","typeString":"contract IEntity"}},"id":76976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21035:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":65093,"src":"21018:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76978,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21047:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"21045:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21018:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76985,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":76984,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76981,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"21089:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21089:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76983,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76987,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76986,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":66186,"src":"21139:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76995,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":76994,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76991,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"21198:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21198:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76993,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[76997],"declarations":[{"constant":false,"id":76997,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77098,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76996,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77003,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76999,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76998,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21287:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":66421,"src":"21265:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":77002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21243:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77004,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76997,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77005,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"21330:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21315:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77012,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77011,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77008,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"21370:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21370:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77010,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77013,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76997,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77014,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"21432:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77017,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76884,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77023,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77022,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77019,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73800,"src":"21500:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21500:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77021,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77025,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77024,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21568:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":66451,"src":"21546:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":77029,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21597:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"21595:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21546:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77036,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77035,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77032,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73818,"src":"21645:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21645:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77034,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77038],"declarations":[{"constant":false,"id":77038,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77098,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77037,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77050,"initialValue":{"arguments":[{"expression":{"id":77043,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21743:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"21741:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":77047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21765:1:160","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":77046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21755:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77045,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21755:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77040,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77039,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21732:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":66473,"src":"21710:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":77049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21691:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77051,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21802:1:160","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":77053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21794:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77052,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21794:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21782:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77072,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77073,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21948:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21946:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83390,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77081,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77080,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77077,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"22048:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77079,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77082,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77071,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77061,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75091,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77062,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76839,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21876:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21874:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83390,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21910:1:160","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":77066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21900:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77065,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21900:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77058,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77057,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21842:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":66517,"src":"21820:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":77069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77070,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77084,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77083,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":77086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22178:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66910,"src":"22163:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:1:160","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":77089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22190:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77088,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22190:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22163:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77097,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77096,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77093,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"22223:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22223:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77095,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76834,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77099,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76833,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76836,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77146,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77145,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77113,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"22421:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77107,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"22369:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22369:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22380:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"22369:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83382,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77106,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":77112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22412:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"22359:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":77114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77120,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77119,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77116,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73830,"src":"22453:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77118,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77122,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77121,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22535:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71927,"src":"22503:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77126,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77101,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77132,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77131,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77128,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"22575:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22575:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77130,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77134,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77133,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22659:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":72044,"src":"22627:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":77137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":77138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22672:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22627:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77144,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77143,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77140,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73806,"src":"22696:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22696:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77142,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77101,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77146,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77100,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77103,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77146,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77102,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77105,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77156,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77155,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77151,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77148,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77150,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77203,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22929:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77153,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77154,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77148,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77156,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77147,"name":"uint48","nodeType":"ElementaryTypeName","src":"22908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22907:11:160"},"virtual":false,"visibility":"internal"},{"id":77203,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77202,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77163],"declarations":[{"constant":false,"id":77163,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77202,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77162,"nodeType":"UserDefinedTypeName","pathNode":{"id":77161,"name":"Storage","nameLocations":["23032:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23032:7:160"},"referencedDeclaration":73928,"src":"23032:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77166,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77164,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"23052:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23052:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23032:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77167,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77168,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23087:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23082:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23082:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23076:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77176,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77175,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77172,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23121:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23121:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77174,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77178],"declarations":[{"constant":false,"id":77178,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77202,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77177,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77189,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77179,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77163,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23185:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23183:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77163,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23209:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23207:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23183:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":77186,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77163,"src":"23252:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23254:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23252:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77184,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77163,"src":"23228:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23230:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23228:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23162:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77190,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77191,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77178,"src":"23289:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77193,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23309:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23304:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23304:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77201,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77200,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77197,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23343:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23343:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77199,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77158,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77203,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77157,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77160,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77216,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77215,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77210],"declarations":[{"constant":false,"id":77210,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77215,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77213,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77211,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77228,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23481:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23466:32:160"},{"AST":{"nativeSrc":"23534:47:160","nodeType":"YulBlock","src":"23534:47:160","statements":[{"nativeSrc":"23548:23:160","nodeType":"YulAssignment","src":"23548:23:160","value":{"name":"slot","nativeSrc":"23567:4:160","nodeType":"YulIdentifier","src":"23567:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23548:15:160","nodeType":"YulIdentifier","src":"23548:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77207,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77210,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77214,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77204,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77207,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77216,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77206,"nodeType":"UserDefinedTypeName","pathNode":{"id":77205,"name":"Storage","nameLocations":["23428:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23428:7:160"},"referencedDeclaration":73928,"src":"23428:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23427:28:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77228,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77227,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77223,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77221,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23680:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23668:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23668:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23709:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23668:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77220,"id":77226,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77217,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77228,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77252,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77251,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77236],"declarations":[{"constant":false,"id":77236,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77251,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77241,"initialValue":{"arguments":[{"id":77239,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77230,"src":"23847:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":77237,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23835:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"23820:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":77240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23820:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23805:52:160"},{"expression":{"id":77249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77245,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77242,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23879:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23867:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23867:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23908:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23867:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77248,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77236,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77250,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77233,"kind":"modifierInvocation","modifierName":{"id":77232,"name":"onlyOwner","nameLocations":["23785:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"23785:9:160"},"nodeType":"ModifierInvocation","src":"23785:9:160"}],"name":"_setStorageSlot","nameLocation":"23736:15:160","parameters":{"id":77231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77230,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77252,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77229,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77234,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77283,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77262,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77261,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77257,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77254,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77256,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77282,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23978:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77259,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77260,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77254,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77262,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77253,"name":"address","nodeType":"ElementaryTypeName","src":"23953:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23952:15:160"},"virtual":false,"visibility":"internal"},{"id":77282,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77281,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77271,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75088,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77272,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24139:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24135:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":77268,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77264,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77267,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$44539","typeString":"contract IAccessControl"}},"id":77270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24107:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":44506,"src":"24085:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":77274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77280,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77279,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77276,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"24169:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77278,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77264,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77282,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77263,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77266,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77283,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75060,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75061,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75062,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75063,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75064,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75065,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75066,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75067,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77283,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77284,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,53880,55791,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860,84280,84283,84286],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Mirror.json b/ethexe/ethereum/abi/Mirror.json index 5872113a7fa..491319452b7 100644 --- a/ethexe/ethereum/abi/Mirror.json +++ b/ethexe/ethereum/abi/Mirror.json @@ -1 +1 @@ -{"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":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUpWithPermit","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"},{"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":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"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":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"}],"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":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"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":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"transitionHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"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":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"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"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"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":"ReplyCallFailed","inputs":[{"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":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"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":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611d8138819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611cdb90816100a682396080518181816102390152818161031d015281816113e90152818161148a0152818161152d01526115e30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;7624:16;;2621:41123;;;;;;;;7624:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;-1:-1:-1;2621:41123:161;;;;;-1:-1:-1;2621:41123:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;-1:-1:-1;9882:69:161;;:::i;:::-;42692:9;:13;;:37;;;-1:-1:-1;42688:1048:161;;;42799:33;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;;;42799:33;2621:41123;42688:1048;2621:41123;42854:7;2621:41123;;;;42853:8;:35;;;42688:1048;42849:887;;;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;42849:887;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;19408:6;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;42704:1;19629:154;;;;;42704:1;19629:154;2621:41123;;;;;;;8593:5;2621:41123;8593:5;2621:41123;19815:70;2621:41123;;;;;;;;;;;;;;;;;;42704:1;2621:41123;;;;42704:1;2621:41123;;;;;;;;;;;;;;;;;;;;43377:88;43522:14;;19629:154;2621:41123;;;19844:10;;19815:70;;;;42704:1;43552:115;2621:41123;42704:1;43552:115;2621:41123;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;42704:1;2621:41123;8593:38;-1:-1:-1;42854:7:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;42849:887;43704:21;;;42704:1;43704:21;2621:41123;42704:1;43704:21;42853:35;2621:41123;42884:4;2621:41123;42865:23;;42853:35;;42692:37;2621:41123;;42709:20;42692:37;;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:31;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;9882:69;;:::i;:::-;9363:6;2621:41123;;;;;;;20666:37;;20418:21;-1:-1:-1;;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;:::i;:::-;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;2621:41123;-1:-1:-1;;;;;14371:14:161;14378:6;14371:14;:::i;:::-;2621:41123;14371:79;;;;;2621:41123;;14371:79;2621:41123;;;;;;;;;14371:79;;14393:10;2621:41123;14371:79;;2621:41123;14413:4;2621:41123;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:79;;;;2621:41123;14487:6;-1:-1:-1;;;;;;;;;;;14487:6:161;;2621:41123;14487:6;;:::i;:::-;2621:41123;;;;;14510:39;2621:41123;;14371:79;;14487:6;14371:79;;2621:41123;14371:79;;-1:-1:-1;;;;;;;;;;;14371:79:161;;:::i;:::-;;;;;;;;;2621:41123;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;9503:63;;:::i;:::-;16181:11;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;811:66:53;2621:41123:161;;-1:-1:-1;;;;;2621:41123:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;16181:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;16631:30:161;16627:124;;2621:41123;;;16627:124;2621:41123;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;;;;16682:58;2621:41123;;811:66:53;-1:-1:-1;;;811:66:53;;2621:41123:161;811:66:53;;2621:41123:161;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:20;2621:41123;;;;;;;;;;;;;;;;;;;;4050:26;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;2621:41123;;;;;;12953:46;2621:41123;12988:10;12953:46;;2621:41123;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;12480:64;2621:41123;;;;;;:::i;:::-;9882:69;;;;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;-1:-1:-1;;;;;12419:9:161;2621:41123;12457:6;;;;:::i;:::-;12480:64;2621:41123;;12515:10;;;;2621:41123;;;12480:64;;:::i;:::-;;;;2621:41123;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;:::i;:::-;9882:69;;:::i;:::-;8798:67;;:::i;:::-;10354:5;;;:::i;:::-;-1:-1:-1;;;;;2621:41123:161;;;;;;13429:39;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:18;2621:41123;;;;;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;2621:41123;;;;-1:-1:-1;;;;;19370:9:161;2621:41123;19408:6;;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;;;;;;;;2621:41123;;;;;;;;;;;;;8593:5;19815:70;2621:41123;;8593:5;2621:41123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19629:154;2621:41123;;;19844:10;;19815:70;;;;2621:41123;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;8593:38;-1:-1:-1;8620:11:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;2621:41123;;;;;;;;;;;;;3940:24;2621:41123;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;9503:63;;:::i;:::-;17254:19;2621:41123;;;;17254:19;:::i;:::-;17285:4;-1:-1:-1;;;;;2621:41123:161;;;17254:36;2621:41123;;17442:38;;2621:41123;;17442:38;;:::i;:::-;17438:113;;2621:41123;;;17672:20;;2621:41123;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21507:35;2621:41123;;;;;;;;;21507:35;:::i;:::-;2621:41123;;;21618:3;2621:41123;;;;;;;21601:15;;;;;2621:41123;;;;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20739:273:169;2621:41123:161;;;;17442:38;2621:41123;;;;;;;20838:15:169;;2621:41123:161;;;;;;;;;;;;;;;20739:273:169;;;;;;2621:41123:161;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;20739:273:169;;;;;;;;;;:::i;:::-;2621:41123:161;20716:306:169;;4093:83:22;;;;2621:41123:161;;;;;;;;;;;17442:38;;2621:41123;;22310:7;2621:41123;;;;;;;;22310:7;:::i;:::-;2621:41123;21586:13;;;22236:162;37118:13;2621:41123;;;;;;;;37118:13;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;;37169:26:161;2621:41123;;;;;;;;37169:26;:::i;:::-;2621:41123;37169:29;2621:41123;;;37169:34;37218:20;;2621:41123;37253:433;;;;;2621:41123;;;37301:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;37301:16;:::i;:::-;2621:41123;;;:::i;:::-;;-1:-1:-1;;;;;37765:14:161;2621:41123;;;37718:20;2621:41123;;;;;;;;37718:20;:::i;:::-;2621:41123;;;;;;;37765:14;:::i;:::-;2621:41123;;37718:71;;;;;37749:7;37718:71;;;:::i;:::-;;37808:8;37804:513;;37253:433;37114:1562;22236:162;;37804:513;37859:52;37874:20;2621:41123;;;;;;;;37874:20;:::i;:::-;37896:14;2621:41123;;;;;;;;37896:14;:::i;:::-;37859:52;;:::i;:::-;37933:16;37929:125;;37804:513;38217:85;2621:41123;38233:14;2621:41123;;;;;;;;38233:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38275:26:161;2621:41123;;;;;;;;38275:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;38217:85;37804:513;;;37929:125;37978:57;37998:20;2621:41123;;;;;;;;37998:20;:::i;:::-;38020:14;2621:41123;;;;;;;;38020:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;37978:57;37929:125;;37253:433;2621:41123;;;;37518:153;;2621:41123;37609:16;2621:41123;;;;;;;;;;;;37609:16;:::i;:::-;37627:26;2621:41123;;;;;;;;37627:26;:::i;:::-;2621:41123;;;;;37562:32;;;;;;37518:153;;;;2621:41123;;;;;;;37518:153;;;2621:41123;;;;;;;;;;:::i;:::-;;;;;;;;;;37518:153;2621:41123;;37518:153;;;;;;:::i;:::-;37253:433;;37114:1562;38370:52;38385:20;2621:41123;;;;;;;;38385:20;:::i;38370:52::-;38440:16;38436:117;;37114:1562;38572:93;38578:16;2621:41123;;;;;;;;;;;;38578:16;:::i;:::-;38596:14;2621:41123;;;;;;;;38596:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38638:26:161;2621:41123;;;;;;;;38638:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38572:93;;;22236:162;;38436:117;38481:57;38501:20;2621:41123;;;;;;;;38501:20;:::i;:::-;38523:14;2621:41123;;;;;;;;38523:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;38481:57;38436:117;;2621:41123;;;;;;;;;;;;;;;;21601:15;;;;2621:41123;21601:15;2621:41123;;;;;;;1083:131:25;;2621:41123:161;17810:23;2621:41123;;17810:23;2621:41123;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39449:33;;;;;;;:::i;:::-;39492:18;2621:41123;39526:13;2621:41123;39521:628;39556:3;39541:13;;;;;;39689:17;2621:41123;;;;;;;;;;;;;;39896:46;39911:17;2621:41123;;;;;39689:17;;;2621:41123;;39689:17;;;;;:::i;:::-;39708:11;;;;;;:::i;:::-;2621:41123;;21377:50:169;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;21377:50:169;;;;;;:::i;:::-;2621:41123:161;21367:61:169;;4093:83:22;;;2621:41123:161;39911:17;;:::i;:::-;39930:11;;;:::i;39896:46::-;39930:11;;;40022;39992:42;40022:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;39992:42;39956:183;2621:41123;39526:13;;;;;;39956:183;40112:11;40078:46;40112:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;40078:46;39956:183;;39541:13;;;1083:131:25;2621:41123:161;;;;17914:18;;;;;:::i;:::-;;;;2621:41123;;;;17962:21;21377:50:169;2621:41123:161;;17962:21;;:::i;:::-;8798:67;;;:::i;:::-;40643:13;2621:41123;;-1:-1:-1;;;;;;2621:41123:161;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;-1:-1:-1;;2621:41123:161;20418:21;-1:-1:-1;;;;;2621:41123:161;;20666:37;;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;40867:8;40863:231;;17910:183;;;;2621:41123;;18194:24;2621:41123;;18194:24;2621:41123;18181:37;;;;;18177:110;;17910:183;2621:41123;;18496:18;18425:19;2621:41123;;;;18425:19;:::i;:::-;18496:18;;:::i;:::-;18528:21;21377:50:169;2621:41123:161;;18528:21;;:::i;:::-;18563:26;;2621:41123;;18563:26;;:::i;:::-;2621:41123;18603:38;17442;2621:41123;;17442:38;18603;:::i;:::-;2621:41123;;;22289:279:169;;;;2621:41123:161;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;22289:279:169;;;;;;:::i;:::-;2621:41123:161;22266:312:169;;2621:41123:161;;;;;;18177:110;2621:41123;41454:23;2621:41123;;;;;;41454:23;18177:110;;;;40863:231;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;41028:55;;;40863:231;;;;17910:183;2621:41123;-1:-1:-1;;;;;18023:21:161;2621:41123;;21377:50:169;18023:21:161;;:::i;:::-;2621:41123;;;;17910:183;;;2621:41123;;;;;;;;;17438:113;17513:26;;;2621:41123;;17513:26;;:::i;:::-;;:::i;:::-;17438:113;;2621:41123;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;9658:102::-;9727:6;-1:-1:-1;;;;;2621:41123:161;9713:10;:20;2621:41123;;9658:102::o;2621:41123::-;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2621:41123:161;;;;:::o;:::-;;;:::o;10854:215::-;-1:-1:-1;;;;;2621:41123:161;10918:10;10914:149;;10854:215;:::o;10914:149::-;10927:1;10962:6;;;;;:29;;;;:::i;:::-;;2621:41123;;;10854:215::o;2621:41123::-;;;;10927:1;2621:41123;;10927:1;2621:41123;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10043:108::-;2621:41123;;-1:-1:-1;;;10102:24:161;;;2621:41123;10102:24;2621:41123;10110:6;-1:-1:-1;;;;;2621:41123:161;10102:24;;;;;;;-1:-1:-1;10102:24:161;;;10043:108;10101:25;2621:41123;;10043:108::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;10102:24;-1:-1:-1;2621:41123:161;10102:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2621:41123;;;;;;;;;8952:89;2621:41123;9010:6;2621:41123;;;;8952:89::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;10487:228;-1:-1:-1;;;;;2621:41123:161;10550:10;10546:163;;10487:228;:::o;10546:163::-;10598:6;;2621:41123;;10591:54;-1:-1:-1;;;;;10591:14:161;10598:6;10591:14;:::i;:::-;2621:41123;;-1:-1:-1;;;10591:54:161;;10619:10;10591:54;;;2621:41123;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;10559:1;;2621:41123;10591:54;;;;;;;10559:1;10591:54;;;10546:163;2621:41123;;;;10487:228::o;2621:41123::-;;;;10559:1;2621:41123;10591:54;10559:1;2621:41123;10591:54;;;;2621:41123;10591:54;2621:41123;10591:54;;;;;;;:::i;:::-;;;;7993:107;8058:5;2621:41123;8058:9;2621:41123;;7993:107::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;41658:182;2621:41123;;-1:-1:-1;;;41760:33:161;;2621:41123;41760:33;;2621:41123;;41760:33;;2621:41123;;-1:-1:-1;;;;;2621:41123:161;41760:33;;;;;;;-1:-1:-1;41760:33:161;;;41658:182;-1:-1:-1;;;;;;2621:41123:161;;41658:182::o;41760:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2621:41123;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;41760:33;;;;;;-1:-1:-1;41760:33:161;;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;2621:41123:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;:::o;23021:1125::-;23279:36;;;:::i;:::-;23278:37;23274:866;;23021:1125;:::o;23274:866::-;23585:13;;;;;:::i;:::-;23581:453;;23274:866;24053:76;;24074:20;;;;;:::i;:::-;24096:16;;;;;;:::i;:::-;24114:14;;;;;;;;:::i;:::-;2621:41123;24096:16;2621:41123;;;;;;;;;;;;24053:76;;:::i;:::-;;;;23021:1125::o;23581:453::-;23636:20;;;-1:-1:-1;23636:20:161;;;;:::i;:::-;23676:16;;;;;;;:::i;:::-;2621:41123;;;23676:16;2621:41123;;;;;;;;;;;23636:57;;23667:7;23636:57;;;:::i;:::-;;23716:8;23712:308;;23581:453;;;23712:308;23936:20;23905:68;23936:20;;:::i;:::-;23958:14;;;;;:::i;:::-;23676:16;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;23905:68;2621:41123;42082:253;;-1:-1:-1;;;;;2621:41123:161;42179:10;;42175:133;;42317:11;;42324:4;42082:253;:::o;42175:133::-;2621:41123;42223:46;;;;;42245:5;42223:46;;;:::i;:::-;;42283:14;:::o;27225:3845::-;27364:16;;;;;;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;27397:20;;;;;:::i;:::-;2621:41123;27397:38;:61;;;;27225:3845;27397:83;;;;27225:3845;27395:86;27391:129;;27560:249;;;;;27825:17;27841:1;27825:17;;;:38;;;27225:3845;27823:41;27819:84;;2943:42;;;;27841:1;2621:41123;;28044:37;;28038:83;;27841:1;28240:95;;;28906:31;28916:21;28906:31;;;:90;;;27225:3845;28906:147;;;27225:3845;28906:204;;;27225:3845;28906:265;;;27225:3845;28906:331;;;27225:3845;28906:373;;;27225:3845;28906:425;;;27225:3845;28906:465;;;27225:3845;28906:515;;;27225:3845;28906:562;;;27225:3845;28906:633;;;27225:3845;28906:687;;;27225:3845;28906:738;;;27225:3845;28891:763;28887:806;;2943:42;;;-1:-1:-1;;2943:42:161;;;27841:1;29863:21;2943:42;29863:21;:::i;:::-;29894:117;;;;;;30230:216;;;;;;;;;;27841:1;30460:17;;27841:1;;30493:83;;;;;;;;27841:1;27225:3845;:::o;30456:586::-;30612:1;30596:17;;30612:1;;30629:91;;;;27841:1;27225:3845;:::o;30592:450::-;30756:1;30740:17;;;;;;;;30736:306;30756:1;;;30773:99;;;;;;;27841:1;27225:3845;:::o;30736:306::-;30908:1;30892:17;30888:154;;30736:306;;;;;;;27841:1;27225:3845;:::o;30888:154::-;30230:216;;;30925:107;;30888:154;;;;;;;;28887:806;29670:12;;;;;2621:41123;29670:12;:::o;28906:738::-;29609:35;29619:25;29609:35;;;28906:738;;:687;29555:38;29565:28;29555:38;;;28906:687;;:633;29484:55;29494:45;29484:55;;;28906:633;;:562;29437:31;29447:21;29437:31;;;28906:562;;:515;29387:34;29397:24;29387:34;;;28906:515;;:465;29347:24;29357:14;29347:24;;;28906:465;;:425;29295:36;29305:26;29295:36;;;28906:425;;:373;29253:26;29263:16;29253:26;;;28906:373;;:331;29187:50;-1:-1:-1;;;;;;;;;;;29187:50:161;;;28906:331;;:265;29126:45;29136:35;29126:45;;;28906:265;;:204;29069:41;29079:31;29069:41;;;28906:204;;:147;29012:41;29022:31;29012:41;;;28906:147;;:90;28953:43;28963:33;28953:43;;;28906:90;;28038:83;28098:12;;;;2621:41123;28098:12;:::o;27825:38::-;27846:17;27862:1;27846:17;;;27825:38;;27391:129;27497:12;;2621:41123;27497:12;:::o;27397:83::-;27462:18;;;;27397:83;;:61;-1:-1:-1;;;;;27439:14:161;;;;;;;:::i;:::-;2621:41123;27439:19;27397:61;;","linkReferences":{},"immutableReferences":{"77308":[{"start":569,"length":32},{"start":797,"length":32},{"start":5097,"length":32},{"start":5258,"length":32},{"start":5421,"length":32},{"start":5603,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"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\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"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\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"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\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"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\":\"executableBalanceTopUpWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"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\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"}],\"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\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"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\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transitionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mirror smart contract is responsible for storing the minimal state of programs on our platform and transitioning from one state to another by calling `performStateTransition(...)`. It's built on actor-model architecture, and in Ethereum, we implement this through \\\"request-response\\\" model. This means we have two types of events: - \\\"Requested\\\" events - when user calls one of the methods marked as \\\"Primary Gear logic\\\" we emit such an event, and all our nodes process it off-chain - \\\"Responded\\\" events - when we receive response from our nodes and transmit it back to Ethereum. All logic called within `performStateTransition(...)` and leading to methods marked as \\\"Private calls related to performStateTransition\\\" are such events. It's important not to confuse these two, as this is how we implement the actor model in Ethereum. Mirror economic model has two balances: - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`. This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`. - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain. It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform. You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users can use it for free. This is called the \\\"reverse-gas model\\\". Developer can also require the presence of `value` in the owned balance when calling methods in a WASM smart contract to protect their program from spam.\",\"errors\":{\"CallerNotRouter()\":[{\"details\":\"Thrown when the caller is not the `Router`.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the `Router` contract is paused and pause-protected Mirror call is attempted.\"}],\"EtherTransferToRouterFailed()\":[{\"details\":\"Thrown when the transfer of Ether to the `Router` fails.\"}],\"InitMessageNotCreated()\":[{\"details\":\"Thrown when the first (init) message is not created by the initializer.\"}],\"InitMessageNotCreatedAndCallerNotInitializer()\":[{\"details\":\"Thrown when the first (init) message is not created and the caller is not the initializer.\"}],\"ProgramExited()\":[{\"details\":\"Thrown when the program is exited and the call is attempted.\"}],\"ProgramNotExited()\":[{\"details\":\"Thrown when the program is not exited and the call is attempted.\"}],\"TransferLockedValueToInheritorExternalFailed()\":[{\"details\":\"Thrown when the transfer of locked value to the inheritor fails (in external call).\"}],\"WVaraTransferFailed()\":[{\"details\":\"Thrown when the transfer of Vara to the `Router` fails.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens.\",\"params\":{\"value\":\"The amount of tokens the user wants to top up. 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.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about new message sent from program.\"}},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about failed message call from program.\"}},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued.\",\"params\":{\"callReply\":\"Indicates whether the message is sent with callReply flag. NOTE: It's event for NODES: it requires to insert message in the program's queue.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"source\":\"Message source address.\",\"value\":\"Message value.\"}},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether.\",\"params\":{\"value\":\"The amount of Ether the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"}},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message.\",\"params\":{\"payload\":\"Reply message payload.\",\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about new reply sent from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts.\",\"params\":{\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about failed reply call from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued.\",\"params\":{\"payload\":\"The payload of the reply.\",\"repliedTo\":\"The ID of the message being replied to.\",\"source\":\"The address of the reply sender.\",\"value\":\"The value of the reply. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"}},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call\",\"params\":{\"destination\":\"The address of the destination.\",\"value\":\"The amount of value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"}},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed.\",\"params\":{\"stateHash\":\"The new state hash of the program. NOTE: It's event for USERS: it informs about state changes.\"}},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit.\",\"params\":{\"inheritor\":\"The address of the inheritor.\",\"value\":\"The amount of locked value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"}},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value that failed to claim. NOTE: It's event for USERS: it informs about failed value claim.\"}},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value claimed. 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.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"source\":\"The address of the claim sender. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}}},\"kind\":\"dev\",\"methods\":{\"claimValue(bytes32)\":{\"details\":\"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.\",\"params\":{\"_claimedId\":\"Message ID of the value to be claimed.\"}},\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable `Router` address.\",\"params\":{\"_router\":\"The address of the `Router` contract.\"}},\"executableBalanceTopUp(uint128)\":{\"details\":\"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\",\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"initialize(address,address,bool,uint128)\":{\"details\":\"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.\",\"params\":{\"_abiInterface\":\"The address of the ABI interface. This address will be displayed as \\\"proxy implementation\\\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.\",\"_initialExecutableBalance\":\"The initial executable balance to be transferred to the program.\",\"_initializer\":\"The address of the initializer. Only this address will be able to send the first (init) message.\",\"_isSmall\":\"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))\":{\"details\":\"Performs state transition for the `Mirror` contract.\",\"params\":{\"_transition\":\"The state transition data.\"},\"returns\":{\"transitionHash\":\"The hash of the performed state transition.\"}},\"sendMessage(bytes,bool)\":{\"details\":\"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.\",\"params\":{\"_callReply\":\"Whether to set `call` flag in the reply message.\",\"_payload\":\"The payload of the message.\"},\"returns\":{\"messageId\":\"Message ID of the sent message.\"}},\"sendReply(bytes32,bytes)\":{\"details\":\"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.\",\"params\":{\"_payload\":\"The payload of the reply message.\",\"_repliedTo\":\"Message ID to which the reply is sent.\"}},\"transferLockedValueToInheritor()\":{\"details\":\"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events and re-remit then as Solidity events: - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit. Inheritor specifies the address to which all available program value should be transferred.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"Flag that indicates what type this `Mirror` smart contract is: - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation (which is usually more expensive in terms of gas to create). This is generally the more popular way and is the one you will most likely use if you are writing programs using the Sails framework. This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`. User writes WASM smart contract on Sails framework called \\\"\\u0421ounter\\\": - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)` and waits for the code to be validated. User also generates \\\"Solidity ABI Interface\\\" to allow incrementing counter or calling other methods within WASM smart contract. Next, we assume user uploads `CounterAbi` smart contract to Ethereum: ```solidity interface ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId); function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId); // ... other methods } contract CounterAbi is ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {} function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {} } ``` User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`, where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \\\"proxy implementation\\\", and Etherscan will think that `Mirror` has `CounterAbi` methods. User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract: `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror` to create new message and pass the Solidity call to the WASM smart contract on the Sails framework. WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`. - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation (which is usually less expensive in terms of gas to create). This case is suitable if the user develops WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the `Router` contract, which is the sole authority to modify the state of this contract and transfer funds from it. forge-lint: disable-next-item(screaming-snake-case-immutable)\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b\",\"dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"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":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","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},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","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":"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":"ReplyCallFailed","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":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","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":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"},{"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":"executableBalanceTopUpWithPermit"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"}],"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":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"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":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"transitionHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","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":{"claimValue(bytes32)":{"details":"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.","params":{"_claimedId":"Message ID of the value to be claimed."}},"constructor":{"details":"Minimal constructor that only sets the immutable `Router` address.","params":{"_router":"The address of the `Router` contract."}},"executableBalanceTopUp(uint128)":{"details":"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":{"details":"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter.","_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"initialize(address,address,bool,uint128)":{"details":"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.","params":{"_abiInterface":"The address of the ABI interface. This address will be displayed as \"proxy implementation\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.","_initialExecutableBalance":"The initial executable balance to be transferred to the program.","_initializer":"The address of the initializer. Only this address will be able to send the first (init) message.","_isSmall":"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":{"details":"Performs state transition for the `Mirror` contract.","params":{"_transition":"The state transition data."},"returns":{"transitionHash":"The hash of the performed state transition."}},"sendMessage(bytes,bool)":{"details":"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.","params":{"_callReply":"Whether to set `call` flag in the reply message.","_payload":"The payload of the message."},"returns":{"messageId":"Message ID of the sent message."}},"sendReply(bytes32,bytes)":{"details":"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.","params":{"_payload":"The payload of the reply message.","_repliedTo":"Message ID to which the reply is sent."}},"transferLockedValueToInheritor()":{"details":"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73","urls":["bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b","dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77311,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77314,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77317,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77320,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77323,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77326,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":78724,"exportedSymbols":{"ERC1967Utils":[45701],"Gear":[84099],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006],"Memory":[41257],"Mirror":[78723],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:43671:161","nodes":[{"id":77280,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77282,"nodeType":"ImportDirective","src":"100:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77281,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77284,"nodeType":"ImportDirective","src":"185:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77283,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77286,"nodeType":"ImportDirective","src":"260:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77285,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77288,"nodeType":"ImportDirective","src":"321:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77287,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77290,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77289,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77292,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":77291,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77294,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":77293,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77296,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":77295,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77298,"nodeType":"ImportDirective","src":"575:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":77297,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"583:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78723,"nodeType":"ContractDefinition","src":"2621:41123:161","nodes":[{"id":77305,"nodeType":"VariableDeclaration","src":"2900:85:161","nodes":[],"constant":true,"documentation":{"id":77302,"nodeType":"StructuredDocumentation","src":"2654:241:161","text":" @dev Special address to which Sails contract sends messages so that Mirror can decode events\n and re-remit then as Solidity events:\n - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"2926:14:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77303,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":77308,"nodeType":"VariableDeclaration","src":"3228:31:161","nodes":[],"baseFunctions":[74295],"constant":false,"documentation":{"id":77306,"nodeType":"StructuredDocumentation","src":"2992:231:161","text":" @dev Address of the `Router` contract, which is the sole authority\n to modify the state of this contract and transfer funds from it.\n forge-lint: disable-next-item(screaming-snake-case-immutable)"},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"3253:6:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77307,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77311,"nodeType":"VariableDeclaration","src":"3324:24:161","nodes":[],"baseFunctions":[74301],"constant":false,"documentation":{"id":77309,"nodeType":"StructuredDocumentation","src":"3266:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3339:9:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77314,"nodeType":"VariableDeclaration","src":"3558:20:161","nodes":[],"baseFunctions":[74307],"constant":false,"documentation":{"id":77312,"nodeType":"StructuredDocumentation","src":"3355:198:161","text":" @dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"3573:5:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3558:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77317,"nodeType":"VariableDeclaration","src":"3668:18:161","nodes":[],"baseFunctions":[74313],"constant":false,"documentation":{"id":77315,"nodeType":"StructuredDocumentation","src":"3585:78:161","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3680:6:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77316,"name":"bool","nodeType":"ElementaryTypeName","src":"3668:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77320,"nodeType":"VariableDeclaration","src":"3940:24:161","nodes":[],"baseFunctions":[74319],"constant":false,"documentation":{"id":77318,"nodeType":"StructuredDocumentation","src":"3741:194:161","text":" @dev The address of the inheritor, which is set by the program on exit.\n Inheritor specifies the address to which all available program value should be transferred."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"3955:9:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77319,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77323,"nodeType":"VariableDeclaration","src":"4050:26:161","nodes":[],"baseFunctions":[74325],"constant":false,"documentation":{"id":77321,"nodeType":"StructuredDocumentation","src":"3971:74:161","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4065:11:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77322,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77326,"nodeType":"VariableDeclaration","src":"7411:12:161","nodes":[],"constant":false,"documentation":{"id":77324,"nodeType":"StructuredDocumentation","src":"4083:3323:161","text":" @dev Flag that indicates what type this `Mirror` smart contract is:\n - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation\n (which is usually more expensive in terms of gas to create). This is generally the\n more popular way and is the one you will most likely use if you are writing programs using the Sails framework.\n This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and\n new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`.\n User writes WASM smart contract on Sails framework called \"Сounter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)`\n and waits for the code to be validated.\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`,\n where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \"proxy implementation\",\n and Etherscan will think that `Mirror` has `CounterAbi` methods.\n User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract:\n `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call\n and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror`\n to create new message and pass the Solidity call to the WASM smart contract on the Sails framework.\n WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`.\n - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation\n (which is usually less expensive in terms of gas to create). This case is suitable if the user develops\n WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors\n (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`."},"mutability":"mutable","name":"isSmall","nameLocation":"7416:7:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77325,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77337,"nodeType":"FunctionDefinition","src":"7585:62:161","nodes":[],"body":{"id":77336,"nodeType":"Block","src":"7614:33:161","nodes":[],"statements":[{"expression":{"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77332,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"7624:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77333,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"7633:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7624:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77335,"nodeType":"ExpressionStatement","src":"7624:16:161"}]},"documentation":{"id":77327,"nodeType":"StructuredDocumentation","src":"7430:150:161","text":" @dev Minimal constructor that only sets the immutable `Router` address.\n @param _router The address of the `Router` contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77329,"mutability":"mutable","name":"_router","nameLocation":"7605:7:161","nodeType":"VariableDeclaration","scope":77337,"src":"7597:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77328,"name":"address","nodeType":"ElementaryTypeName","src":"7597:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7596:17:161"},"returnParameters":{"id":77331,"nodeType":"ParameterList","parameters":[],"src":"7614:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77345,"nodeType":"ModifierDefinition","src":"7804:83:161","nodes":[],"body":{"id":77344,"nodeType":"Block","src":"7836:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77340,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77358,"src":"7846:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77342,"nodeType":"ExpressionStatement","src":"7846:23:161"},{"id":77343,"nodeType":"PlaceholderStatement","src":"7879:1:161"}]},"documentation":{"id":77338,"nodeType":"StructuredDocumentation","src":"7676:123:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7813:20:161","parameters":{"id":77339,"nodeType":"ParameterList","parameters":[],"src":"7833:2:161"},"virtual":false,"visibility":"internal"},{"id":77358,"nodeType":"FunctionDefinition","src":"7993:107:161","nodes":[],"body":{"id":77357,"nodeType":"Block","src":"8040:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77350,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"8058:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8066:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8058:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77353,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"8069:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8050:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77356,"nodeType":"ExpressionStatement","src":"8050:43:161"}]},"documentation":{"id":77346,"nodeType":"StructuredDocumentation","src":"7893:95:161","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8002:21:161","parameters":{"id":77347,"nodeType":"ParameterList","parameters":[],"src":"8023:2:161"},"returnParameters":{"id":77348,"nodeType":"ParameterList","parameters":[],"src":"8040:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77366,"nodeType":"ModifierDefinition","src":"8267:109:161","nodes":[],"body":{"id":77365,"nodeType":"Block","src":"8312:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77361,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77384,"src":"8322:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8322:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77363,"nodeType":"ExpressionStatement","src":"8322:36:161"},{"id":77364,"nodeType":"PlaceholderStatement","src":"8368:1:161"}]},"documentation":{"id":77359,"nodeType":"StructuredDocumentation","src":"8106:156:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"8276:33:161","parameters":{"id":77360,"nodeType":"ParameterList","parameters":[],"src":"8309:2:161"},"virtual":false,"visibility":"internal"},{"id":77384,"nodeType":"FunctionDefinition","src":"8515:172:161","nodes":[],"body":{"id":77383,"nodeType":"Block","src":"8575:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"8593:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8601:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8593:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8606:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8610:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8606:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77376,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"8620:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8606:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8593:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77379,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"8633:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8585:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77382,"nodeType":"ExpressionStatement","src":"8585:95:161"}]},"documentation":{"id":77367,"nodeType":"StructuredDocumentation","src":"8382:128:161","text":" @dev Internal function to check if the init message has been created before or the caller is the initializer."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"8524:34:161","parameters":{"id":77368,"nodeType":"ParameterList","parameters":[],"src":"8558:2:161"},"returnParameters":{"id":77369,"nodeType":"ParameterList","parameters":[],"src":"8575:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77392,"nodeType":"ModifierDefinition","src":"8798:67:161","nodes":[],"body":{"id":77391,"nodeType":"Block","src":"8822:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77387,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77404,"src":"8832:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8832:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77389,"nodeType":"ExpressionStatement","src":"8832:15:161"},{"id":77390,"nodeType":"PlaceholderStatement","src":"8857:1:161"}]},"documentation":{"id":77385,"nodeType":"StructuredDocumentation","src":"8693:100:161","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8807:12:161","parameters":{"id":77386,"nodeType":"ParameterList","parameters":[],"src":"8819:2:161"},"virtual":false,"visibility":"internal"},{"id":77404,"nodeType":"FunctionDefinition","src":"8952:89:161","nodes":[],"body":{"id":77403,"nodeType":"Block","src":"8991:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9009:7:161","subExpression":{"id":77397,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"9010:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77399,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74259,"src":"9018:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9001:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9001:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77402,"nodeType":"ExpressionStatement","src":"9001:33:161"}]},"documentation":{"id":77393,"nodeType":"StructuredDocumentation","src":"8871:76:161","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"8961:13:161","parameters":{"id":77394,"nodeType":"ParameterList","parameters":[],"src":"8974:2:161"},"returnParameters":{"id":77395,"nodeType":"ParameterList","parameters":[],"src":"8991:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77412,"nodeType":"ModifierDefinition","src":"9152:67:161","nodes":[],"body":{"id":77411,"nodeType":"Block","src":"9176:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77407,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77423,"src":"9186:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77409,"nodeType":"ExpressionStatement","src":"9186:15:161"},{"id":77410,"nodeType":"PlaceholderStatement","src":"9211:1:161"}]},"documentation":{"id":77405,"nodeType":"StructuredDocumentation","src":"9047:100:161","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9161:12:161","parameters":{"id":77406,"nodeType":"ParameterList","parameters":[],"src":"9173:2:161"},"virtual":false,"visibility":"internal"},{"id":77423,"nodeType":"FunctionDefinition","src":"9306:91:161","nodes":[],"body":{"id":77422,"nodeType":"Block","src":"9345:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77417,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"9363:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77418,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74262,"src":"9371:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9355:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9355:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77421,"nodeType":"ExpressionStatement","src":"9355:35:161"}]},"documentation":{"id":77413,"nodeType":"StructuredDocumentation","src":"9225:76:161","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9315:13:161","parameters":{"id":77414,"nodeType":"ParameterList","parameters":[],"src":"9328:2:161"},"returnParameters":{"id":77415,"nodeType":"ParameterList","parameters":[],"src":"9345:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77431,"nodeType":"ModifierDefinition","src":"9503:63:161","nodes":[],"body":{"id":77430,"nodeType":"Block","src":"9525:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77426,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77445,"src":"9535:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77428,"nodeType":"ExpressionStatement","src":"9535:13:161"},{"id":77429,"nodeType":"PlaceholderStatement","src":"9558:1:161"}]},"documentation":{"id":77424,"nodeType":"StructuredDocumentation","src":"9403:95:161","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9512:10:161","parameters":{"id":77425,"nodeType":"ParameterList","parameters":[],"src":"9522:2:161"},"virtual":false,"visibility":"internal"},{"id":77445,"nodeType":"FunctionDefinition","src":"9658:102:161","nodes":[],"body":{"id":77444,"nodeType":"Block","src":"9695:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77436,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9713:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9717:6:161","memberName":"sender","nodeType":"MemberAccess","src":"9713:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77438,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"9727:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9713:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77440,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74265,"src":"9735:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9735:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9705:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9705:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77443,"nodeType":"ExpressionStatement","src":"9705:48:161"}]},"documentation":{"id":77432,"nodeType":"StructuredDocumentation","src":"9572:81:161","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9667:11:161","parameters":{"id":77433,"nodeType":"ParameterList","parameters":[],"src":"9678:2:161"},"returnParameters":{"id":77434,"nodeType":"ParameterList","parameters":[],"src":"9695:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77453,"nodeType":"ModifierDefinition","src":"9882:69:161","nodes":[],"body":{"id":77452,"nodeType":"Block","src":"9907:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77448,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77469,"src":"9917:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77450,"nodeType":"ExpressionStatement","src":"9917:16:161"},{"id":77451,"nodeType":"PlaceholderStatement","src":"9943:1:161"}]},"documentation":{"id":77446,"nodeType":"StructuredDocumentation","src":"9766:111:161","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9891:13:161","parameters":{"id":77447,"nodeType":"ParameterList","parameters":[],"src":"9904:2:161"},"virtual":false,"visibility":"internal"},{"id":77469,"nodeType":"FunctionDefinition","src":"10043:108:161","nodes":[],"body":{"id":77468,"nodeType":"Block","src":"10083:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10101:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77459,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10110:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77458,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"10102:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74990_$","typeString":"type(contract IRouter)"}},"id":77460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":77461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74753,"src":"10102:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77464,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"10128:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10128:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10093:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10093:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77467,"nodeType":"ExpressionStatement","src":"10093:51:161"}]},"documentation":{"id":77454,"nodeType":"StructuredDocumentation","src":"9957:81:161","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10052:14:161","parameters":{"id":77455,"nodeType":"ParameterList","parameters":[],"src":"10066:2:161"},"returnParameters":{"id":77456,"nodeType":"ParameterList","parameters":[],"src":"10083:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77480,"nodeType":"ModifierDefinition","src":"10289:89:161","nodes":[],"body":{"id":77479,"nodeType":"Block","src":"10328:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"10354:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77474,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"10338:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77477,"nodeType":"ExpressionStatement","src":"10338:22:161"},{"id":77478,"nodeType":"PlaceholderStatement","src":"10370:1:161"}]},"documentation":{"id":77470,"nodeType":"StructuredDocumentation","src":"10157:127:161","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10298:14:161","parameters":{"id":77473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77472,"mutability":"mutable","name":"value","nameLocation":"10321:5:161","nodeType":"VariableDeclaration","scope":77480,"src":"10313:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77471,"name":"uint128","nodeType":"ElementaryTypeName","src":"10313:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10312:15:161"},"virtual":false,"visibility":"internal"},{"id":77510,"nodeType":"FunctionDefinition","src":"10487:228:161","nodes":[],"body":{"id":77509,"nodeType":"Block","src":"10536:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77483,"src":"10550:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10559:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10550:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77508,"nodeType":"IfStatement","src":"10546:163:161","trueBody":{"id":77507,"nodeType":"Block","src":"10562:147:161","statements":[{"assignments":[77490],"declarations":[{"constant":false,"id":77490,"mutability":"mutable","name":"success","nameLocation":"10581:7:161","nodeType":"VariableDeclaration","scope":77507,"src":"10576:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77489,"name":"bool","nodeType":"ElementaryTypeName","src":"10576:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77500,"initialValue":{"arguments":[{"expression":{"id":77495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10619:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10623:6:161","memberName":"sender","nodeType":"MemberAccess","src":"10619:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10631:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77483,"src":"10639:5:161","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":77492,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10598:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77491,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"10591:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75006_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":77494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10606:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"10591:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10576:69:161"},{"expression":{"arguments":[{"id":77502,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77490,"src":"10667:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77503,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74271,"src":"10676:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10676:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77501,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10659:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77506,"nodeType":"ExpressionStatement","src":"10659:39:161"}]}}]},"documentation":{"id":77481,"nodeType":"StructuredDocumentation","src":"10384:98:161","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10496:15:161","parameters":{"id":77484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77483,"mutability":"mutable","name":"value","nameLocation":"10520:5:161","nodeType":"VariableDeclaration","scope":77510,"src":"10512:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77482,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10511:15:161"},"returnParameters":{"id":77485,"nodeType":"ParameterList","parameters":[],"src":"10536:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77537,"nodeType":"FunctionDefinition","src":"10854:215:161","nodes":[],"body":{"id":77536,"nodeType":"Block","src":"10904:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"10918:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10918:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77535,"nodeType":"IfStatement","src":"10914:149:161","trueBody":{"id":77534,"nodeType":"Block","src":"10930:133:161","statements":[{"assignments":[77520,null],"declarations":[{"constant":false,"id":77520,"mutability":"mutable","name":"success","nameLocation":"10950:7:161","nodeType":"VariableDeclaration","scope":77534,"src":"10945:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77519,"name":"bool","nodeType":"ElementaryTypeName","src":"10945:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77527,"initialValue":{"arguments":[{"hexValue":"","id":77525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77521,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10962:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10969:4:161","memberName":"call","nodeType":"MemberAccess","src":"10962:11:161","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":77524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"10981:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"10962:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10944:47:161"},{"expression":{"arguments":[{"id":77529,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77520,"src":"11013:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77530,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74274,"src":"11022:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11022:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11005:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11005:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77533,"nodeType":"ExpressionStatement","src":"11005:47:161"}]}}]},"documentation":{"id":77511,"nodeType":"StructuredDocumentation","src":"10721:128:161","text":" @dev Non-zero Ether value must be transferred from source to `Router` in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"10863:16:161","parameters":{"id":77514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77513,"mutability":"mutable","name":"value","nameLocation":"10888:5:161","nodeType":"VariableDeclaration","scope":77537,"src":"10880:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77512,"name":"uint128","nodeType":"ElementaryTypeName","src":"10880:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10879:15:161"},"returnParameters":{"id":77515,"nodeType":"ParameterList","parameters":[],"src":"10904:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77555,"nodeType":"FunctionDefinition","src":"11454:216:161","nodes":[],"body":{"id":77554,"nodeType":"Block","src":"11612:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77550,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77540,"src":"11642:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77551,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77542,"src":"11652:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77549,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"11629:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11629:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77548,"id":77553,"nodeType":"Return","src":"11622:41:161"}]},"baseFunctions":[74335],"documentation":{"id":77538,"nodeType":"StructuredDocumentation","src":"11124:325:161","text":" @dev Sends message to the program.\n As result of execution, the `MessageQueueingRequested` event will be emitted.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":77545,"kind":"modifierInvocation","modifierName":{"id":77544,"name":"whenNotPaused","nameLocations":["11558:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"11558:13:161"},"nodeType":"ModifierInvocation","src":"11558:13:161"}],"name":"sendMessage","nameLocation":"11463:11:161","parameters":{"id":77543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77540,"mutability":"mutable","name":"_payload","nameLocation":"11490:8:161","nodeType":"VariableDeclaration","scope":77555,"src":"11475:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77539,"name":"bytes","nodeType":"ElementaryTypeName","src":"11475:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77542,"mutability":"mutable","name":"_callReply","nameLocation":"11505:10:161","nodeType":"VariableDeclaration","scope":77555,"src":"11500:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77541,"name":"bool","nodeType":"ElementaryTypeName","src":"11500:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11474:42:161"},"returnParameters":{"id":77548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77547,"mutability":"mutable","name":"messageId","nameLocation":"11597:9:161","nodeType":"VariableDeclaration","scope":77555,"src":"11589:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11589:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11588:19:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77590,"nodeType":"FunctionDefinition","src":"12211:340:161","nodes":[],"body":{"id":77589,"nodeType":"Block","src":"12384:167:161","nodes":[],"statements":[{"assignments":[77570],"declarations":[{"constant":false,"id":77570,"mutability":"mutable","name":"_value","nameLocation":"12402:6:161","nodeType":"VariableDeclaration","scope":77589,"src":"12394:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77569,"name":"uint128","nodeType":"ElementaryTypeName","src":"12394:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77576,"initialValue":{"arguments":[{"expression":{"id":77573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12419:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12423:5:161","memberName":"value","nodeType":"MemberAccess","src":"12419:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12411:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77571,"name":"uint128","nodeType":"ElementaryTypeName","src":"12411:7:161","typeDescriptions":{}}},"id":77575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12411:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12394:35:161"},{"expression":{"arguments":[{"id":77578,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"12457:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77577,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"12440:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12440:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77580,"nodeType":"ExpressionStatement","src":"12440:24:161"},{"eventCall":{"arguments":[{"id":77582,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77558,"src":"12503:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77583,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12515:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12519:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12515:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77585,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77560,"src":"12527:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77586,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"12537:6:161","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":77581,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"12480:22:161","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":77587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77588,"nodeType":"EmitStatement","src":"12475:69:161"}]},"baseFunctions":[74343],"documentation":{"id":77556,"nodeType":"StructuredDocumentation","src":"11676:530:161","text":" @dev Sends reply message to the program.\n Note that this function does not return `bytes32 messageId` of the sent message,\n if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)`\n or use SDK in `ethexe/sdk/src/mirror.rs`.\n As result of execution, the `ReplyQueueingRequested` event will be emitted.\n @param _repliedTo Message ID to which the reply is sent.\n @param _payload The payload of the reply message."},"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":77563,"kind":"modifierInvocation","modifierName":{"id":77562,"name":"whenNotPaused","nameLocations":["12316:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"12316:13:161"},"nodeType":"ModifierInvocation","src":"12316:13:161"},{"id":77565,"kind":"modifierInvocation","modifierName":{"id":77564,"name":"onlyIfActive","nameLocations":["12338:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"12338:12:161"},"nodeType":"ModifierInvocation","src":"12338:12:161"},{"id":77567,"kind":"modifierInvocation","modifierName":{"id":77566,"name":"onlyAfterInitMessage","nameLocations":["12359:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77345,"src":"12359:20:161"},"nodeType":"ModifierInvocation","src":"12359:20:161"}],"name":"sendReply","nameLocation":"12220:9:161","parameters":{"id":77561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77558,"mutability":"mutable","name":"_repliedTo","nameLocation":"12238:10:161","nodeType":"VariableDeclaration","scope":77590,"src":"12230:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12230:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77560,"mutability":"mutable","name":"_payload","nameLocation":"12265:8:161","nodeType":"VariableDeclaration","scope":77590,"src":"12250:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77559,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12229:45:161"},"returnParameters":{"id":77568,"nodeType":"ParameterList","parameters":[],"src":"12384:0:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77609,"nodeType":"FunctionDefinition","src":"12841:165:161","nodes":[],"body":{"id":77608,"nodeType":"Block","src":"12938:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77603,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77593,"src":"12976:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77604,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12988:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12992:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12988:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77602,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"12953:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12953:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77607,"nodeType":"EmitStatement","src":"12948:51:161"}]},"baseFunctions":[74349],"documentation":{"id":77591,"nodeType":"StructuredDocumentation","src":"12624:212:161","text":" @dev Claim value from message in mailbox.\n As result of execution, the `ValueClaimingRequested` event will be emitted.\n @param _claimedId Message ID of the value to be claimed."},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":77596,"kind":"modifierInvocation","modifierName":{"id":77595,"name":"whenNotPaused","nameLocations":["12890:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"12890:13:161"},"nodeType":"ModifierInvocation","src":"12890:13:161"},{"id":77598,"kind":"modifierInvocation","modifierName":{"id":77597,"name":"onlyIfActive","nameLocations":["12904:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"12904:12:161"},"nodeType":"ModifierInvocation","src":"12904:12:161"},{"id":77600,"kind":"modifierInvocation","modifierName":{"id":77599,"name":"onlyAfterInitMessage","nameLocations":["12917:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77345,"src":"12917:20:161"},"nodeType":"ModifierInvocation","src":"12917:20:161"}],"name":"claimValue","nameLocation":"12850:10:161","parameters":{"id":77594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77593,"mutability":"mutable","name":"_claimedId","nameLocation":"12869:10:161","nodeType":"VariableDeclaration","scope":77609,"src":"12861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12860:20:161"},"returnParameters":{"id":77601,"nodeType":"ParameterList","parameters":[],"src":"12938:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77627,"nodeType":"FunctionDefinition","src":"13307:168:161","nodes":[],"body":{"id":77626,"nodeType":"Block","src":"13414:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77623,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77612,"src":"13461:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77622,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"13429:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13429:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77625,"nodeType":"EmitStatement","src":"13424:44:161"}]},"baseFunctions":[74355],"documentation":{"id":77610,"nodeType":"StructuredDocumentation","src":"13012:290:161","text":" @dev Tops up the executable balance of the program.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":77615,"kind":"modifierInvocation","modifierName":{"id":77614,"name":"whenNotPaused","nameLocations":["13364:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"13364:13:161"},"nodeType":"ModifierInvocation","src":"13364:13:161"},{"id":77617,"kind":"modifierInvocation","modifierName":{"id":77616,"name":"onlyIfActive","nameLocations":["13378:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"13378:12:161"},"nodeType":"ModifierInvocation","src":"13378:12:161"},{"arguments":[{"id":77619,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77612,"src":"13406:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77620,"kind":"modifierInvocation","modifierName":{"id":77618,"name":"retrievingVara","nameLocations":["13391:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77480,"src":"13391:14:161"},"nodeType":"ModifierInvocation","src":"13391:22:161"}],"name":"executableBalanceTopUp","nameLocation":"13316:22:161","parameters":{"id":77613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77612,"mutability":"mutable","name":"_value","nameLocation":"13347:6:161","nodeType":"VariableDeclaration","scope":77627,"src":"13339:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77611,"name":"uint128","nodeType":"ElementaryTypeName","src":"13339:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13338:16:161"},"returnParameters":{"id":77621,"nodeType":"ParameterList","parameters":[],"src":"13414:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77675,"nodeType":"FunctionDefinition","src":"14182:374:161","nodes":[],"body":{"id":77674,"nodeType":"Block","src":"14357:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77661,"nodeType":"Block","src":"14451:2:161","statements":[]},"errorName":"","id":77662,"nodeType":"TryCatchClause","src":"14451:2:161"},{"block":{"id":77663,"nodeType":"Block","src":"14460:2:161","statements":[]},"errorName":"","id":77664,"nodeType":"TryCatchClause","src":"14454:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77649,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14393:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14397:6:161","memberName":"sender","nodeType":"MemberAccess","src":"14393:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77653,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14413:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14405:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77651,"name":"address","nodeType":"ElementaryTypeName","src":"14405:7:161","typeDescriptions":{}}},"id":77654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77655,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14420:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77656,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77632,"src":"14428:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77657,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77634,"src":"14439:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77658,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77636,"src":"14443:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77659,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77638,"src":"14447:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":77646,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"14378:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77645,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"14371:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75006_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14386:6:161","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"14371:21:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:79:161","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77665,"nodeType":"TryStatement","src":"14367:95:161"},{"expression":{"arguments":[{"id":77667,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14487:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77666,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"14471:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14471:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77669,"nodeType":"ExpressionStatement","src":"14471:23:161"},{"eventCall":{"arguments":[{"id":77671,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77670,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14510:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77673,"nodeType":"EmitStatement","src":"14505:44:161"}]},"baseFunctions":[74369],"documentation":{"id":77628,"nodeType":"StructuredDocumentation","src":"13481:696:161","text":" @dev Tops up the executable balance of the program.\n Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router`\n using permit signature, which can save one transaction for user.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"c6049692","implemented":true,"kind":"function","modifiers":[{"id":77641,"kind":"modifierInvocation","modifierName":{"id":77640,"name":"whenNotPaused","nameLocations":["14318:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"14318:13:161"},"nodeType":"ModifierInvocation","src":"14318:13:161"},{"id":77643,"kind":"modifierInvocation","modifierName":{"id":77642,"name":"onlyIfActive","nameLocations":["14340:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"14340:12:161"},"nodeType":"ModifierInvocation","src":"14340:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14191:32:161","parameters":{"id":77639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77630,"mutability":"mutable","name":"_value","nameLocation":"14232:6:161","nodeType":"VariableDeclaration","scope":77675,"src":"14224:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77629,"name":"uint128","nodeType":"ElementaryTypeName","src":"14224:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77632,"mutability":"mutable","name":"_deadline","nameLocation":"14248:9:161","nodeType":"VariableDeclaration","scope":77675,"src":"14240:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77631,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77634,"mutability":"mutable","name":"_v","nameLocation":"14265:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14259:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77633,"name":"uint8","nodeType":"ElementaryTypeName","src":"14259:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77636,"mutability":"mutable","name":"_r","nameLocation":"14277:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14269:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14269:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77638,"mutability":"mutable","name":"_s","nameLocation":"14289:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14281:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14281:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14223:69:161"},"returnParameters":{"id":77644,"nodeType":"ParameterList","parameters":[],"src":"14357:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77693,"nodeType":"FunctionDefinition","src":"14802:208:161","nodes":[],"body":{"id":77692,"nodeType":"Block","src":"14867:143:161","nodes":[],"statements":[{"assignments":[null,77682],"declarations":[null,{"constant":false,"id":77682,"mutability":"mutable","name":"success","nameLocation":"14885:7:161","nodeType":"VariableDeclaration","scope":77692,"src":"14880:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77681,"name":"bool","nodeType":"ElementaryTypeName","src":"14880:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77683,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"14896:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14896:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14877:52:161"},{"expression":{"arguments":[{"id":77687,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77682,"src":"14947:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77688,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74277,"src":"14956:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77686,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14939:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14939:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77691,"nodeType":"ExpressionStatement","src":"14939:64:161"}]},"baseFunctions":[74373],"documentation":{"id":77676,"nodeType":"StructuredDocumentation","src":"14562:235:161","text":" @dev Transfers locked value to the inheritor.\n Note that this function can be called only after program exited.\n As result of execution, the `LockedValueTransferRequested` event will be emitted."},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":77679,"kind":"modifierInvocation","modifierName":{"id":77678,"name":"whenNotPaused","nameLocations":["14853:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"14853:13:161"},"nodeType":"ModifierInvocation","src":"14853:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"14811:30:161","parameters":{"id":77677,"nodeType":"ParameterList","parameters":[],"src":"14841:2:161"},"returnParameters":{"id":77680,"nodeType":"ParameterList","parameters":[],"src":"14867:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77772,"nodeType":"FunctionDefinition","src":"16008:749:161","nodes":[],"body":{"id":77771,"nodeType":"Block","src":"16163:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77708,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"16181:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16204:1:161","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":77710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16196:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77709,"name":"address","nodeType":"ElementaryTypeName","src":"16196:7:161","typeDescriptions":{}}},"id":77712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16196:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16181:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77714,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74279,"src":"16208:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16208:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16173:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77717,"nodeType":"ExpressionStatement","src":"16173:59:161"},{"expression":{"arguments":[{"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16251:8:161","subExpression":{"id":77719,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"16252:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77721,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74281,"src":"16261:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16243:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16243:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77724,"nodeType":"ExpressionStatement","src":"16243:38:161"},{"assignments":[77729],"declarations":[{"constant":false,"id":77729,"mutability":"mutable","name":"implementationSlot","nameLocation":"16324:18:161","nodeType":"VariableDeclaration","scope":77771,"src":"16292:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77728,"nodeType":"UserDefinedTypeName","pathNode":{"id":77727,"name":"StorageSlot.AddressSlot","nameLocations":["16292:11:161","16304:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48971,"src":"16292:23:161"},"referencedDeclaration":48971,"src":"16292:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":77735,"initialValue":{"arguments":[{"expression":{"id":77732,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"16384:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16397:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":45422,"src":"16384:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77730,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"16357:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":49000,"src":"16357:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48971_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":77734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16357:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16292:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77737,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"16436:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16455:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16436:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16472:1:161","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":77740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16464:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77739,"name":"address","nodeType":"ElementaryTypeName","src":"16464:7:161","typeDescriptions":{}}},"id":77742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16464:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16436:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77744,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74283,"src":"16476:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16428:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77747,"nodeType":"ExpressionStatement","src":"16428:73:161"},{"expression":{"id":77750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77748,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"16512:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77749,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77696,"src":"16526:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16512:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77751,"nodeType":"ExpressionStatement","src":"16512:26:161"},{"expression":{"id":77754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77752,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"16548:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77753,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77700,"src":"16558:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16548:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77755,"nodeType":"ExpressionStatement","src":"16548:18:161"},{"expression":{"id":77760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77756,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"16576:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16595:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16576:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77759,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77698,"src":"16603:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16576:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77761,"nodeType":"ExpressionStatement","src":"16576:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77762,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"16631:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16660:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16631:30:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77770,"nodeType":"IfStatement","src":"16627:124:161","trueBody":{"id":77769,"nodeType":"Block","src":"16663:88:161","statements":[{"eventCall":{"arguments":[{"id":77766,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"16714:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77765,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"16682:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16682:58:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77768,"nodeType":"EmitStatement","src":"16677:63:161"}]}}]},"baseFunctions":[74385],"documentation":{"id":77694,"nodeType":"StructuredDocumentation","src":"15070:933:161","text":" @dev Initializes the contract with the given parameters.\n Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default,\n so we do the initialization separately after creating `Mirror` in this method.\n @param _initializer The address of the initializer. Only this address will be able to send the first (init) message.\n @param _abiInterface The address of the ABI interface. This address will be displayed as \"proxy implementation\"\n and is necessary to show the available methods of `Mirror` smart contract on Etherscan.\n In case it is a Sails framework smart contract, the user can set his own ABI.\n @param _isSmall The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\n @param _initialExecutableBalance The initial executable balance to be transferred to the program."},"functionSelector":"bfa28576","implemented":true,"kind":"function","modifiers":[{"id":77705,"kind":"modifierInvocation","modifierName":{"id":77704,"name":"onlyRouter","nameLocations":["16148:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77431,"src":"16148:10:161"},"nodeType":"ModifierInvocation","src":"16148:10:161"}],"name":"initialize","nameLocation":"16017:10:161","parameters":{"id":77703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77696,"mutability":"mutable","name":"_initializer","nameLocation":"16036:12:161","nodeType":"VariableDeclaration","scope":77772,"src":"16028:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77695,"name":"address","nodeType":"ElementaryTypeName","src":"16028:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77698,"mutability":"mutable","name":"_abiInterface","nameLocation":"16058:13:161","nodeType":"VariableDeclaration","scope":77772,"src":"16050:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77697,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77700,"mutability":"mutable","name":"_isSmall","nameLocation":"16078:8:161","nodeType":"VariableDeclaration","scope":77772,"src":"16073:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77699,"name":"bool","nodeType":"ElementaryTypeName","src":"16073:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77702,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16096:25:161","nodeType":"VariableDeclaration","scope":77772,"src":"16088:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77701,"name":"uint128","nodeType":"ElementaryTypeName","src":"16088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16027:95:161"},"returnParameters":{"id":77706,"nodeType":"ParameterList","parameters":[],"src":"16163:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77872,"nodeType":"FunctionDefinition","src":"16971:1748:161","nodes":[],"body":{"id":77871,"nodeType":"Block","src":"17143:1576:161","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77784,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17254:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"17254:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77788,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17285:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17277:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77786,"name":"address","nodeType":"ElementaryTypeName","src":"17277:7:161","typeDescriptions":{}}},"id":77789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17277:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17254:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77791,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74285,"src":"17292:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17246:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17246:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"17246:63:161"},{"condition":{"expression":{"id":77795,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17442:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17454:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"17442:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":77803,"nodeType":"IfStatement","src":"17438:113:161","trueBody":{"id":77802,"nodeType":"Block","src":"17482:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77798,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17513:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"17513:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77797,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"17496:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17496:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77801,"nodeType":"ExpressionStatement","src":"17496:44:161"}]}},{"assignments":[77806],"declarations":[{"constant":false,"id":77806,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17637:18:161","nodeType":"VariableDeclaration","scope":77871,"src":"17629:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17629:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77811,"initialValue":{"arguments":[{"expression":{"id":77808,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17672:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17684:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"17672:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77807,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78053,"src":"17658:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17658:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17629:64:161"},{"assignments":[77814],"declarations":[{"constant":false,"id":77814,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17779:15:161","nodeType":"VariableDeclaration","scope":77871,"src":"17771:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17771:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":77819,"initialValue":{"arguments":[{"expression":{"id":77816,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17810:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":83161,"src":"17810:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":77815,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78561,"src":"17797:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":77818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17797:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17771:63:161"},{"condition":{"expression":{"id":77820,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17914:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17926:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"17914:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":77840,"nodeType":"Block","src":"18001:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77829,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18023:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18035:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"18023:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18056:1:161","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":77832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18048:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77831,"name":"address","nodeType":"ElementaryTypeName","src":"18048:7:161","typeDescriptions":{}}},"id":77834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18048:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18023:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77836,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74287,"src":"18060:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18060:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18015:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18015:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77839,"nodeType":"ExpressionStatement","src":"18015:67:161"}]},"id":77841,"nodeType":"IfStatement","src":"17910:183:161","trueBody":{"id":77827,"nodeType":"Block","src":"17934:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":77823,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17962:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17974:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"17962:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77822,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78594,"src":"17948:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17948:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77826,"nodeType":"ExpressionStatement","src":"17948:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77842,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"18181:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77843,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18194:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18194:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18181:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":77852,"nodeType":"IfStatement","src":"18177:110:161","trueBody":{"id":77851,"nodeType":"Block","src":"18220:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":77847,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18251:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18263:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18251:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77846,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78609,"src":"18234:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18234:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77850,"nodeType":"ExpressionStatement","src":"18234:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":77855,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18425:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18437:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"18425:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77857,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18458:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18458:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77859,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18496:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18508:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"18496:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":77861,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18528:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18540:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"18528:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77863,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18563:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"18563:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":77865,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18603:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18615:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"18603:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":77867,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77814,"src":"18655:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77868,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77806,"src":"18684:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77853,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"18387:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":77854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18392:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83450,"src":"18387:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":77869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18387:325:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77782,"id":77870,"nodeType":"Return","src":"18380:332:161"}]},"baseFunctions":[74394],"documentation":{"id":77773,"nodeType":"StructuredDocumentation","src":"16763:203:161","text":" @dev Performs state transition for the `Mirror` contract.\n @param _transition The state transition data.\n @return transitionHash The hash of the performed state transition."},"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":77779,"kind":"modifierInvocation","modifierName":{"id":77778,"name":"onlyRouter","nameLocations":["17087:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77431,"src":"17087:10:161"},"nodeType":"ModifierInvocation","src":"17087:10:161"}],"name":"performStateTransition","nameLocation":"16980:22:161","parameters":{"id":77777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77776,"mutability":"mutable","name":"_transition","nameLocation":"17033:11:161","nodeType":"VariableDeclaration","scope":77872,"src":"17003:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77775,"nodeType":"UserDefinedTypeName","pathNode":{"id":77774,"name":"Gear.StateTransition","nameLocations":["17003:4:161","17008:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"17003:20:161"},"referencedDeclaration":83167,"src":"17003:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17002:43:161"},"returnParameters":{"id":77782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77781,"mutability":"mutable","name":"transitionHash","nameLocation":"17123:14:161","nodeType":"VariableDeclaration","scope":77872,"src":"17115:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17115:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17114:24:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77922,"nodeType":"FunctionDefinition","src":"19152:760:161","nodes":[],"body":{"id":77921,"nodeType":"Block","src":"19335:577:161","nodes":[],"statements":[{"assignments":[77887],"declarations":[{"constant":false,"id":77887,"mutability":"mutable","name":"_value","nameLocation":"19353:6:161","nodeType":"VariableDeclaration","scope":77921,"src":"19345:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77886,"name":"uint128","nodeType":"ElementaryTypeName","src":"19345:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77893,"initialValue":{"arguments":[{"expression":{"id":77890,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19370:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19374:5:161","memberName":"value","nodeType":"MemberAccess","src":"19370:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19362:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77888,"name":"uint128","nodeType":"ElementaryTypeName","src":"19362:7:161","typeDescriptions":{}}},"id":77892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19362:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19345:35:161"},{"expression":{"arguments":[{"id":77895,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"19408:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77894,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"19391:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19391:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77897,"nodeType":"ExpressionStatement","src":"19391:24:161"},{"assignments":[77899],"declarations":[{"constant":false,"id":77899,"mutability":"mutable","name":"_nonce","nameLocation":"19434:6:161","nodeType":"VariableDeclaration","scope":77921,"src":"19426:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77898,"name":"uint256","nodeType":"ElementaryTypeName","src":"19426:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77901,"initialValue":{"id":77900,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"19443:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19426:22:161"},{"assignments":[77904],"declarations":[{"constant":false,"id":77904,"mutability":"mutable","name":"id","nameLocation":"19617:2:161","nodeType":"VariableDeclaration","scope":77921,"src":"19609:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19609:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":77905,"nodeType":"VariableDeclarationStatement","src":"19609:10:161"},{"AST":{"nativeSrc":"19654:129:161","nodeType":"YulBlock","src":"19654:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19675:4:161","nodeType":"YulLiteral","src":"19675:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"19685:2:161","nodeType":"YulLiteral","src":"19685:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"19689:7:161","nodeType":"YulIdentifier","src":"19689:7:161"},"nativeSrc":"19689:9:161","nodeType":"YulFunctionCall","src":"19689:9:161"}],"functionName":{"name":"shl","nativeSrc":"19681:3:161","nodeType":"YulIdentifier","src":"19681:3:161"},"nativeSrc":"19681:18:161","nodeType":"YulFunctionCall","src":"19681:18:161"}],"functionName":{"name":"mstore","nativeSrc":"19668:6:161","nodeType":"YulIdentifier","src":"19668:6:161"},"nativeSrc":"19668:32:161","nodeType":"YulFunctionCall","src":"19668:32:161"},"nativeSrc":"19668:32:161","nodeType":"YulExpressionStatement","src":"19668:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19720:4:161","nodeType":"YulLiteral","src":"19720:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"19726:6:161","nodeType":"YulIdentifier","src":"19726:6:161"}],"functionName":{"name":"mstore","nativeSrc":"19713:6:161","nodeType":"YulIdentifier","src":"19713:6:161"},"nativeSrc":"19713:20:161","nodeType":"YulFunctionCall","src":"19713:20:161"},"nativeSrc":"19713:20:161","nodeType":"YulExpressionStatement","src":"19713:20:161"},{"nativeSrc":"19746:27:161","nodeType":"YulAssignment","src":"19746:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"19762:4:161","nodeType":"YulLiteral","src":"19762:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19768:4:161","nodeType":"YulLiteral","src":"19768:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"19752:9:161","nodeType":"YulIdentifier","src":"19752:9:161"},"nativeSrc":"19752:21:161","nodeType":"YulFunctionCall","src":"19752:21:161"},"variableNames":[{"name":"id","nativeSrc":"19746:2:161","nodeType":"YulIdentifier","src":"19746:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77899,"isOffset":false,"isSlot":false,"src":"19726:6:161","valueSize":1},{"declaration":77904,"isOffset":false,"isSlot":false,"src":"19746:2:161","valueSize":1}],"flags":["memory-safe"],"id":77906,"nodeType":"InlineAssembly","src":"19629:154:161"},{"expression":{"id":77908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19792:7:161","subExpression":{"id":77907,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"19792:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77909,"nodeType":"ExpressionStatement","src":"19792:7:161"},{"eventCall":{"arguments":[{"id":77911,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77904,"src":"19840:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77912,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19844:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19848:6:161","memberName":"sender","nodeType":"MemberAccess","src":"19844:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77914,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77875,"src":"19856:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77915,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"19866:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77916,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77877,"src":"19874:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77910,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"19815:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19815:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77918,"nodeType":"EmitStatement","src":"19810:75:161"},{"expression":{"id":77919,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77904,"src":"19903:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77885,"id":77920,"nodeType":"Return","src":"19896:9:161"}]},"documentation":{"id":77873,"nodeType":"StructuredDocumentation","src":"18783:364:161","text":" @dev Internal implementation of `sendMessage` function.\n This function is used to send message to the program and emit `MessageQueueingRequested` event.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"implemented":true,"kind":"function","modifiers":[{"id":77880,"kind":"modifierInvocation","modifierName":{"id":77879,"name":"onlyIfActive","nameLocations":["19240:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"19240:12:161"},"nodeType":"ModifierInvocation","src":"19240:12:161"},{"id":77882,"kind":"modifierInvocation","modifierName":{"id":77881,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19261:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77366,"src":"19261:33:161"},"nodeType":"ModifierInvocation","src":"19261:33:161"}],"name":"_sendMessage","nameLocation":"19161:12:161","parameters":{"id":77878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77875,"mutability":"mutable","name":"_payload","nameLocation":"19189:8:161","nodeType":"VariableDeclaration","scope":77922,"src":"19174:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77874,"name":"bytes","nodeType":"ElementaryTypeName","src":"19174:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77877,"mutability":"mutable","name":"_callReply","nameLocation":"19204:10:161","nodeType":"VariableDeclaration","scope":77922,"src":"19199:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77876,"name":"bool","nodeType":"ElementaryTypeName","src":"19199:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19173:42:161"},"returnParameters":{"id":77885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77884,"mutability":"mutable","name":"messageId","nameLocation":"19320:9:161","nodeType":"VariableDeclaration","scope":77922,"src":"19312:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19311:19:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77955,"nodeType":"FunctionDefinition","src":"20241:470:161","nodes":[],"body":{"id":77954,"nodeType":"Block","src":"20390:321:161","nodes":[],"statements":[{"assignments":[77933],"declarations":[{"constant":false,"id":77933,"mutability":"mutable","name":"balance","nameLocation":"20408:7:161","nodeType":"VariableDeclaration","scope":77954,"src":"20400:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77932,"name":"uint256","nodeType":"ElementaryTypeName","src":"20400:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77939,"initialValue":{"expression":{"arguments":[{"id":77936,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20426:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20418:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77934,"name":"address","nodeType":"ElementaryTypeName","src":"20418:7:161","typeDescriptions":{}}},"id":77937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20418:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20432:7:161","memberName":"balance","nodeType":"MemberAccess","src":"20418:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20400:39:161"},{"assignments":[77941],"declarations":[{"constant":false,"id":77941,"mutability":"mutable","name":"balance128","nameLocation":"20607:10:161","nodeType":"VariableDeclaration","scope":77954,"src":"20599:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77940,"name":"uint128","nodeType":"ElementaryTypeName","src":"20599:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77946,"initialValue":{"arguments":[{"id":77944,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77933,"src":"20628:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20620:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77942,"name":"uint128","nodeType":"ElementaryTypeName","src":"20620:7:161","typeDescriptions":{}}},"id":77945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20620:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"20599:37:161"},{"expression":{"components":[{"id":77947,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77941,"src":"20654:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":77949,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"20681:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77950,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77941,"src":"20692:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77948,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"20666:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20653:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":77931,"id":77953,"nodeType":"Return","src":"20646:58:161"}]},"documentation":{"id":77923,"nodeType":"StructuredDocumentation","src":"19918:318:161","text":" @dev Internal implementation of `transferLockedValueToInheritor` function.\n Note that this function can be called only after program exited.\n @return valueTransferred The amount of WVARA transferred.\n @return transferSuccess The flag indicating if the transfer was successful."},"implemented":true,"kind":"function","modifiers":[{"id":77926,"kind":"modifierInvocation","modifierName":{"id":77925,"name":"onlyIfExited","nameLocations":["20308:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77412,"src":"20308:12:161"},"nodeType":"ModifierInvocation","src":"20308:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"20250:31:161","parameters":{"id":77924,"nodeType":"ParameterList","parameters":[],"src":"20281:2:161"},"returnParameters":{"id":77931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77928,"mutability":"mutable","name":"valueTransferred","nameLocation":"20346:16:161","nodeType":"VariableDeclaration","scope":77955,"src":"20338:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77927,"name":"uint128","nodeType":"ElementaryTypeName","src":"20338:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77930,"mutability":"mutable","name":"transferSuccess","nameLocation":"20369:15:161","nodeType":"VariableDeclaration","scope":77955,"src":"20364:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77929,"name":"bool","nodeType":"ElementaryTypeName","src":"20364:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20337:48:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78053,"nodeType":"FunctionDefinition","src":"21279:1232:161","nodes":[],"body":{"id":78052,"nodeType":"Block","src":"21363:1148:161","nodes":[],"statements":[{"assignments":[77966],"declarations":[{"constant":false,"id":77966,"mutability":"mutable","name":"messagesLen","nameLocation":"21381:11:161","nodeType":"VariableDeclaration","scope":78052,"src":"21373:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77965,"name":"uint256","nodeType":"ElementaryTypeName","src":"21373:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77969,"initialValue":{"expression":{"id":77967,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"21395:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:6:161","memberName":"length","nodeType":"MemberAccess","src":"21395:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21373:38:161"},{"assignments":[77971],"declarations":[{"constant":false,"id":77971,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21429:18:161","nodeType":"VariableDeclaration","scope":78052,"src":"21421:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77970,"name":"uint256","nodeType":"ElementaryTypeName","src":"21421:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77975,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77972,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21450:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21464:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21450:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21421:45:161"},{"assignments":[77977],"declarations":[{"constant":false,"id":77977,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21484:20:161","nodeType":"VariableDeclaration","scope":78052,"src":"21476:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77976,"name":"uint256","nodeType":"ElementaryTypeName","src":"21476:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77982,"initialValue":{"arguments":[{"id":77980,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"21523:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77978,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21507:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":77979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"21507:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21507:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21476:66:161"},{"assignments":[77984],"declarations":[{"constant":false,"id":77984,"mutability":"mutable","name":"offset","nameLocation":"21560:6:161","nodeType":"VariableDeclaration","scope":78052,"src":"21552:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77983,"name":"uint256","nodeType":"ElementaryTypeName","src":"21552:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77986,"initialValue":{"hexValue":"30","id":77985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21552:18:161"},{"body":{"id":78043,"nodeType":"Block","src":"21623:785:161","statements":[{"assignments":[78001],"declarations":[{"constant":false,"id":78001,"mutability":"mutable","name":"message","nameLocation":"21659:7:161","nodeType":"VariableDeclaration","scope":78043,"src":"21637:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78000,"nodeType":"UserDefinedTypeName","pathNode":{"id":77999,"name":"Gear.Message","nameLocations":["21637:4:161","21642:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"21637:12:161"},"referencedDeclaration":83101,"src":"21637:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78005,"initialValue":{"baseExpression":{"id":78002,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"21669:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78004,"indexExpression":{"id":78003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21679:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21669:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"21637:44:161"},{"assignments":[78008],"declarations":[{"constant":false,"id":78008,"mutability":"mutable","name":"messageHash","nameLocation":"21787:11:161","nodeType":"VariableDeclaration","scope":78043,"src":"21779:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21779:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78013,"initialValue":{"arguments":[{"id":78011,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"21818:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78009,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"21801:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":78010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21806:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83391,"src":"21801:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83101_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21779:47:161"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":78017,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"21990:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78018,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"22012:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78019,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78008,"src":"22020:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78014,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21964:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21971:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"21964:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21964:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78021,"nodeType":"ExpressionStatement","src":"21964:68:161"},{"id":78026,"nodeType":"UncheckedBlock","src":"22046:55:161","statements":[{"expression":{"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78022,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"22074:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22084:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22074:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78025,"nodeType":"ExpressionStatement","src":"22074:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78027,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22240:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22248:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"22240:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"22240:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22267:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22240:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":78041,"nodeType":"Block","src":"22339:59:161","statements":[{"expression":{"arguments":[{"id":78038,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22375:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78037,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78448,"src":"22357:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22357:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78040,"nodeType":"ExpressionStatement","src":"22357:26:161"}]},"id":78042,"nodeType":"IfStatement","src":"22236:162:161","trueBody":{"id":78036,"nodeType":"Block","src":"22270:63:161","statements":[{"expression":{"arguments":[{"id":78033,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22310:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78032,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"22288:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22288:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78035,"nodeType":"ExpressionStatement","src":"22288:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77991,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21601:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77992,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21605:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21601:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78044,"initializationExpression":{"assignments":[77988],"declarations":[{"constant":false,"id":77988,"mutability":"mutable","name":"i","nameLocation":"21594:1:161","nodeType":"VariableDeclaration","scope":78044,"src":"21586:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77987,"name":"uint256","nodeType":"ElementaryTypeName","src":"21586:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77990,"initialValue":{"hexValue":"30","id":77989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21598:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21586:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21618:3:161","subExpression":{"id":77994,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21618:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77996,"nodeType":"ExpressionStatement","src":"21618:3:161"},"nodeType":"ForStatement","src":"21581:827:161"},{"expression":{"arguments":[{"id":78047,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"22460:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22482:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78049,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"22485:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78045,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"22425:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22432:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"22425:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22425:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77964,"id":78051,"nodeType":"Return","src":"22418:86:161"}]},"documentation":{"id":77956,"nodeType":"StructuredDocumentation","src":"20981:293:161","text":" @dev Internal implementation of `_sendMessages` function.\n It sends all outgoing messages from the `Mirror` contract and emits appropriate events.\n @param _messages The array of messages to be sent.\n @return messagesHash The hash of the sent messages."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"21288:13:161","parameters":{"id":77961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77960,"mutability":"mutable","name":"_messages","nameLocation":"21326:9:161","nodeType":"VariableDeclaration","scope":78053,"src":"21302:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":77958,"nodeType":"UserDefinedTypeName","pathNode":{"id":77957,"name":"Gear.Message","nameLocations":["21302:4:161","21307:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"21302:12:161"},"referencedDeclaration":83101,"src":"21302:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"id":77959,"nodeType":"ArrayTypeName","src":"21302:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21301:35:161"},"returnParameters":{"id":77964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78053,"src":"21354:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21354:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21353:9:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78107,"nodeType":"FunctionDefinition","src":"23021:1125:161","nodes":[],"body":{"id":78106,"nodeType":"Block","src":"23092:1054:161","nodes":[],"statements":[{"condition":{"id":78063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23278:37:161","subExpression":{"arguments":[{"id":78061,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23306:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78060,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78317,"src":"23279:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":78062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23279:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev First, we'll try to parse event from the Sails framework\n and then emit it on behalf of the `Mirror` smart contract.","id":78105,"nodeType":"IfStatement","src":"23274:866:161","trueBody":{"id":78104,"nodeType":"Block","src":"23317:823:161","statements":[{"condition":{"expression":{"id":78064,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23585:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23594:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"23585:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78092,"nodeType":"IfStatement","src":"23581:453:161","trueBody":{"id":78091,"nodeType":"Block","src":"23600:434:161","statements":[{"assignments":[78067,null],"declarations":[{"constant":false,"id":78067,"mutability":"mutable","name":"success","nameLocation":"23624:7:161","nodeType":"VariableDeclaration","scope":78091,"src":"23619:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78066,"name":"bool","nodeType":"ElementaryTypeName","src":"23619:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78076,"initialValue":{"arguments":[{"expression":{"id":78073,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23676:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"23676:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":78068,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23636:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23645:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"23636:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23657:4:161","memberName":"call","nodeType":"MemberAccess","src":"23636:25:161","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":78072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23667:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23636:39:161","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":78075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23636:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23618:75:161"},{"condition":{"id":78078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23716:8:161","subExpression":{"id":78077,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"23717:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78090,"nodeType":"IfStatement","src":"23712:308:161","trueBody":{"id":78089,"nodeType":"Block","src":"23726:294:161","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78080,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23923:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23932:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"23923:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78082,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23936:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"23936:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78084,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23958:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23967:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"23958:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78079,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"23905:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23905:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78087,"nodeType":"EmitStatement","src":"23900:73:161"},{"functionReturnParameters":78059,"id":78088,"nodeType":"Return","src":"23995:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78094,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24061:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24070:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"24061:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78096,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24074:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24083:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"24074:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78098,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24096:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24105:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"24096:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78100,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24114:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24123:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"24114:14:161","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":78093,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"24053:7:161","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":78102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24053:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78103,"nodeType":"EmitStatement","src":"24048:81:161"}]}}]},"documentation":{"id":78054,"nodeType":"StructuredDocumentation","src":"22517:499:161","text":" @dev Internal function to send message that goes to mailbox.\n Value never sent since goes to mailbox.\n Emits `Message` event if it is not event from Sails framework.\n If `_message.call = true`, then call will be made to `_message.destination`\n with _message.payload and gas limit of 500_000 to prevent DoS attacks.\n If call fails, then `MessageCallFailed` event will be emitted.\n @param _message The message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"23030:21:161","parameters":{"id":78058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78057,"mutability":"mutable","name":"_message","nameLocation":"23074:8:161","nodeType":"VariableDeclaration","scope":78107,"src":"23052:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78056,"nodeType":"UserDefinedTypeName","pathNode":{"id":78055,"name":"Gear.Message","nameLocations":["23052:4:161","23057:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"23052:12:161"},"referencedDeclaration":83101,"src":"23052:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23051:32:161"},"returnParameters":{"id":78059,"nodeType":"ParameterList","parameters":[],"src":"23092:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78317,"nodeType":"FunctionDefinition","src":"27225:3845:161","nodes":[],"body":{"id":78316,"nodeType":"Block","src":"27329:3741:161","nodes":[],"statements":[{"assignments":[78117],"declarations":[{"constant":false,"id":78117,"mutability":"mutable","name":"payload","nameLocation":"27354:7:161","nodeType":"VariableDeclaration","scope":78316,"src":"27339:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78116,"name":"bytes","nodeType":"ElementaryTypeName","src":"27339:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78120,"initialValue":{"expression":{"id":78118,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27364:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27373:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"27364:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27339:41:161"},{"condition":{"id":78136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27395:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78121,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27397:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27406:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"27397:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78123,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77305,"src":"27421:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27397:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78125,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27439:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27448:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"27439:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27457:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27439:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78130,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"27462:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27470:6:161","memberName":"length","nodeType":"MemberAccess","src":"27462:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27479:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27462:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27396:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78140,"nodeType":"IfStatement","src":"27391:129:161","trueBody":{"id":78139,"nodeType":"Block","src":"27483:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27504:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78138,"nodeType":"Return","src":"27497:12:161"}]}},{"assignments":[78142],"declarations":[{"constant":false,"id":78142,"mutability":"mutable","name":"topicsLength","nameLocation":"27538:12:161","nodeType":"VariableDeclaration","scope":78316,"src":"27530:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78141,"name":"uint256","nodeType":"ElementaryTypeName","src":"27530:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78143,"nodeType":"VariableDeclarationStatement","src":"27530:20:161"},{"AST":{"nativeSrc":"27585:224:161","nodeType":"YulBlock","src":"27585:224:161","statements":[{"nativeSrc":"27745:54:161","nodeType":"YulAssignment","src":"27745:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"27765:3:161","nodeType":"YulLiteral","src":"27765:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"27783:14:161","nodeType":"YulIdentifier","src":"27783:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"27770:12:161","nodeType":"YulIdentifier","src":"27770:12:161"},"nativeSrc":"27770:28:161","nodeType":"YulFunctionCall","src":"27770:28:161"}],"functionName":{"name":"shr","nativeSrc":"27761:3:161","nodeType":"YulIdentifier","src":"27761:3:161"},"nativeSrc":"27761:38:161","nodeType":"YulFunctionCall","src":"27761:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"27745:12:161","nodeType":"YulIdentifier","src":"27745:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"27783:14:161","suffix":"offset","valueSize":1},{"declaration":78142,"isOffset":false,"isSlot":false,"src":"27745:12:161","valueSize":1}],"flags":["memory-safe"],"id":78144,"nodeType":"InlineAssembly","src":"27560:249:161"},{"condition":{"id":78153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27823:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78145,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"27825:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27841:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27825:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78148,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"27846:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27862:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27846:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27825:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27824:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78157,"nodeType":"IfStatement","src":"27819:84:161","trueBody":{"id":78156,"nodeType":"Block","src":"27866:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27887:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78155,"nodeType":"Return","src":"27880:12:161"}]}},{"assignments":[78159],"declarations":[{"constant":false,"id":78159,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"27921:19:161","nodeType":"VariableDeclaration","scope":78316,"src":"27913:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78158,"name":"uint256","nodeType":"ElementaryTypeName","src":"27913:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78160,"nodeType":"VariableDeclarationStatement","src":"27913:27:161"},{"id":78169,"nodeType":"UncheckedBlock","src":"27950:78:161","statements":[{"expression":{"id":78167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78161,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"27974:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27996:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78163,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"28000:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28015:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"28000:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27996:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27974:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78168,"nodeType":"ExpressionStatement","src":"27974:43:161"}]},{"condition":{"id":78175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28042:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78170,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"28044:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28052:6:161","memberName":"length","nodeType":"MemberAccess","src":"28044:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78172,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"28062:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28044:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28043:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78179,"nodeType":"IfStatement","src":"28038:83:161","trueBody":{"id":78178,"nodeType":"Block","src":"28084:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28105:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78177,"nodeType":"Return","src":"28098:12:161"}]}},{"assignments":[78182],"declarations":[{"constant":false,"id":78182,"mutability":"mutable","name":"topic1","nameLocation":"28224:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"28216:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28216:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":78183,"nodeType":"VariableDeclarationStatement","src":"28216:14:161"},{"AST":{"nativeSrc":"28265:70:161","nodeType":"YulBlock","src":"28265:70:161","statements":[{"nativeSrc":"28279:46:161","nodeType":"YulAssignment","src":"28279:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"28306:14:161","nodeType":"YulIdentifier","src":"28306:14:161"},{"kind":"number","nativeSrc":"28322:1:161","nodeType":"YulLiteral","src":"28322:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28302:3:161","nodeType":"YulIdentifier","src":"28302:3:161"},"nativeSrc":"28302:22:161","nodeType":"YulFunctionCall","src":"28302:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"28289:12:161","nodeType":"YulIdentifier","src":"28289:12:161"},"nativeSrc":"28289:36:161","nodeType":"YulFunctionCall","src":"28289:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"28279:6:161","nodeType":"YulIdentifier","src":"28279:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"28306:14:161","suffix":"offset","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"28279:6:161","valueSize":1}],"flags":["memory-safe"],"id":78184,"nodeType":"InlineAssembly","src":"28240:95:161"},{"condition":{"id":78255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28891:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78185,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"28906:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78186,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"28916:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28929:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28916:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28906:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78189,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"28953:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78190,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"28963:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":78191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28988:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28963:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28953:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78194,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29012:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78195,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"29022:22:161","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":78196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29045:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29022:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29012:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78199,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29069:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78200,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"29079:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29102:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29079:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29069:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78204,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29126:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78205,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"29136:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29163:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29136:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29126:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78209,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29187:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78210,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"29197:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29229:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29197:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29187:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78214,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29253:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78215,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"29263:7:161","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":78216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29271:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29263:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29253:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78219,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29295:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78220,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"29305:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29323:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29305:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29295:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78224,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29347:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78225,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"29357:5:161","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":78226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29357:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29347:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78229,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29387:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78230,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"29397:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29413:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29397:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29387:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78234,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29437:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78235,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"29447:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29460:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29447:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29437:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78239,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29484:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78240,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"29494:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29531:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29494:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29484:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78244,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29555:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78245,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"29565:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29585:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29565:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29555:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78249,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29609:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78250,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"29619:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29636:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29619:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29609:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28892:762:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":78259,"nodeType":"IfStatement","src":"28887:806:161","trueBody":{"id":78258,"nodeType":"Block","src":"29656:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29677:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78257,"nodeType":"Return","src":"29670:12:161"}]}},{"assignments":[78261],"declarations":[{"constant":false,"id":78261,"mutability":"mutable","name":"size","nameLocation":"29744:4:161","nodeType":"VariableDeclaration","scope":78316,"src":"29736:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78260,"name":"uint256","nodeType":"ElementaryTypeName","src":"29736:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78262,"nodeType":"VariableDeclarationStatement","src":"29736:12:161"},{"id":78270,"nodeType":"UncheckedBlock","src":"29758:78:161","statements":[{"expression":{"id":78268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78263,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"29782:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78264,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"29789:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29797:6:161","memberName":"length","nodeType":"MemberAccess","src":"29789:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78266,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"29806:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29789:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29782:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78269,"nodeType":"ExpressionStatement","src":"29782:43:161"}]},{"assignments":[78272],"declarations":[{"constant":false,"id":78272,"mutability":"mutable","name":"memPtr","nameLocation":"29854:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"29846:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78271,"name":"uint256","nodeType":"ElementaryTypeName","src":"29846:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78277,"initialValue":{"arguments":[{"id":78275,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"29879:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78273,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"29863:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29870:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"29863:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29863:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29846:38:161"},{"AST":{"nativeSrc":"29919:92:161","nodeType":"YulBlock","src":"29919:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"29946:6:161","nodeType":"YulIdentifier","src":"29946:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"29958:14:161","nodeType":"YulIdentifier","src":"29958:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"29974:19:161","nodeType":"YulIdentifier","src":"29974:19:161"}],"functionName":{"name":"add","nativeSrc":"29954:3:161","nodeType":"YulIdentifier","src":"29954:3:161"},"nativeSrc":"29954:40:161","nodeType":"YulFunctionCall","src":"29954:40:161"},{"name":"size","nativeSrc":"29996:4:161","nodeType":"YulIdentifier","src":"29996:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"29933:12:161","nodeType":"YulIdentifier","src":"29933:12:161"},"nativeSrc":"29933:68:161","nodeType":"YulFunctionCall","src":"29933:68:161"},"nativeSrc":"29933:68:161","nodeType":"YulExpressionStatement","src":"29933:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"29946:6:161","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"29958:14:161","suffix":"offset","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"29996:4:161","valueSize":1},{"declaration":78159,"isOffset":false,"isSlot":false,"src":"29974:19:161","valueSize":1}],"flags":["memory-safe"],"id":78278,"nodeType":"InlineAssembly","src":"29894:117:161"},{"assignments":[78281],"declarations":[{"constant":false,"id":78281,"mutability":"mutable","name":"topic2","nameLocation":"30166:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30158:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30158:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`.\n Regular offsets: `32`, `64`, `96`.","id":78282,"nodeType":"VariableDeclarationStatement","src":"30158:14:161"},{"assignments":[78284],"declarations":[{"constant":false,"id":78284,"mutability":"mutable","name":"topic3","nameLocation":"30190:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30182:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30182:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78285,"nodeType":"VariableDeclarationStatement","src":"30182:14:161"},{"assignments":[78287],"declarations":[{"constant":false,"id":78287,"mutability":"mutable","name":"topic4","nameLocation":"30214:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30206:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30206:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78288,"nodeType":"VariableDeclarationStatement","src":"30206:14:161"},{"AST":{"nativeSrc":"30255:191:161","nodeType":"YulBlock","src":"30255:191:161","statements":[{"nativeSrc":"30269:47:161","nodeType":"YulAssignment","src":"30269:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30296:14:161","nodeType":"YulIdentifier","src":"30296:14:161"},{"kind":"number","nativeSrc":"30312:2:161","nodeType":"YulLiteral","src":"30312:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"30292:3:161","nodeType":"YulIdentifier","src":"30292:3:161"},"nativeSrc":"30292:23:161","nodeType":"YulFunctionCall","src":"30292:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30279:12:161","nodeType":"YulIdentifier","src":"30279:12:161"},"nativeSrc":"30279:37:161","nodeType":"YulFunctionCall","src":"30279:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"30269:6:161","nodeType":"YulIdentifier","src":"30269:6:161"}]},{"nativeSrc":"30329:47:161","nodeType":"YulAssignment","src":"30329:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30356:14:161","nodeType":"YulIdentifier","src":"30356:14:161"},{"kind":"number","nativeSrc":"30372:2:161","nodeType":"YulLiteral","src":"30372:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"30352:3:161","nodeType":"YulIdentifier","src":"30352:3:161"},"nativeSrc":"30352:23:161","nodeType":"YulFunctionCall","src":"30352:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30339:12:161","nodeType":"YulIdentifier","src":"30339:12:161"},"nativeSrc":"30339:37:161","nodeType":"YulFunctionCall","src":"30339:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"30329:6:161","nodeType":"YulIdentifier","src":"30329:6:161"}]},{"nativeSrc":"30389:47:161","nodeType":"YulAssignment","src":"30389:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30416:14:161","nodeType":"YulIdentifier","src":"30416:14:161"},{"kind":"number","nativeSrc":"30432:2:161","nodeType":"YulLiteral","src":"30432:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"30412:3:161","nodeType":"YulIdentifier","src":"30412:3:161"},"nativeSrc":"30412:23:161","nodeType":"YulFunctionCall","src":"30412:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30399:12:161","nodeType":"YulIdentifier","src":"30399:12:161"},"nativeSrc":"30399:37:161","nodeType":"YulFunctionCall","src":"30399:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"30389:6:161","nodeType":"YulIdentifier","src":"30389:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30296:14:161","suffix":"offset","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30356:14:161","suffix":"offset","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30416:14:161","suffix":"offset","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30269:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"30329:6:161","valueSize":1},{"declaration":78287,"isOffset":false,"isSlot":false,"src":"30389:6:161","valueSize":1}],"flags":["memory-safe"],"id":78289,"nodeType":"InlineAssembly","src":"30230:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78290,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30460:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30476:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30460:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78295,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30596:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30612:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"30596:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78300,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30740:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30756:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"30740:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78305,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30892:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30908:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"30892:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78310,"nodeType":"IfStatement","src":"30888:154:161","trueBody":{"id":78309,"nodeType":"Block","src":"30911:131:161","statements":[{"AST":{"nativeSrc":"30950:82:161","nodeType":"YulBlock","src":"30950:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30973:6:161","nodeType":"YulIdentifier","src":"30973:6:161"},{"name":"size","nativeSrc":"30981:4:161","nodeType":"YulIdentifier","src":"30981:4:161"},{"name":"topic1","nativeSrc":"30987:6:161","nodeType":"YulIdentifier","src":"30987:6:161"},{"name":"topic2","nativeSrc":"30995:6:161","nodeType":"YulIdentifier","src":"30995:6:161"},{"name":"topic3","nativeSrc":"31003:6:161","nodeType":"YulIdentifier","src":"31003:6:161"},{"name":"topic4","nativeSrc":"31011:6:161","nodeType":"YulIdentifier","src":"31011:6:161"}],"functionName":{"name":"log4","nativeSrc":"30968:4:161","nodeType":"YulIdentifier","src":"30968:4:161"},"nativeSrc":"30968:50:161","nodeType":"YulFunctionCall","src":"30968:50:161"},"nativeSrc":"30968:50:161","nodeType":"YulExpressionStatement","src":"30968:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30973:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30981:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30987:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30995:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"31003:6:161","valueSize":1},{"declaration":78287,"isOffset":false,"isSlot":false,"src":"31011:6:161","valueSize":1}],"flags":["memory-safe"],"id":78308,"nodeType":"InlineAssembly","src":"30925:107:161"}]}},"id":78311,"nodeType":"IfStatement","src":"30736:306:161","trueBody":{"id":78304,"nodeType":"Block","src":"30759:123:161","statements":[{"AST":{"nativeSrc":"30798:74:161","nodeType":"YulBlock","src":"30798:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30821:6:161","nodeType":"YulIdentifier","src":"30821:6:161"},{"name":"size","nativeSrc":"30829:4:161","nodeType":"YulIdentifier","src":"30829:4:161"},{"name":"topic1","nativeSrc":"30835:6:161","nodeType":"YulIdentifier","src":"30835:6:161"},{"name":"topic2","nativeSrc":"30843:6:161","nodeType":"YulIdentifier","src":"30843:6:161"},{"name":"topic3","nativeSrc":"30851:6:161","nodeType":"YulIdentifier","src":"30851:6:161"}],"functionName":{"name":"log3","nativeSrc":"30816:4:161","nodeType":"YulIdentifier","src":"30816:4:161"},"nativeSrc":"30816:42:161","nodeType":"YulFunctionCall","src":"30816:42:161"},"nativeSrc":"30816:42:161","nodeType":"YulExpressionStatement","src":"30816:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30821:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30829:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30835:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30843:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"30851:6:161","valueSize":1}],"flags":["memory-safe"],"id":78303,"nodeType":"InlineAssembly","src":"30773:99:161"}]}},"id":78312,"nodeType":"IfStatement","src":"30592:450:161","trueBody":{"id":78299,"nodeType":"Block","src":"30615:115:161","statements":[{"AST":{"nativeSrc":"30654:66:161","nodeType":"YulBlock","src":"30654:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30677:6:161","nodeType":"YulIdentifier","src":"30677:6:161"},{"name":"size","nativeSrc":"30685:4:161","nodeType":"YulIdentifier","src":"30685:4:161"},{"name":"topic1","nativeSrc":"30691:6:161","nodeType":"YulIdentifier","src":"30691:6:161"},{"name":"topic2","nativeSrc":"30699:6:161","nodeType":"YulIdentifier","src":"30699:6:161"}],"functionName":{"name":"log2","nativeSrc":"30672:4:161","nodeType":"YulIdentifier","src":"30672:4:161"},"nativeSrc":"30672:34:161","nodeType":"YulFunctionCall","src":"30672:34:161"},"nativeSrc":"30672:34:161","nodeType":"YulExpressionStatement","src":"30672:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30677:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30685:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30691:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30699:6:161","valueSize":1}],"flags":["memory-safe"],"id":78298,"nodeType":"InlineAssembly","src":"30629:91:161"}]}},"id":78313,"nodeType":"IfStatement","src":"30456:586:161","trueBody":{"id":78294,"nodeType":"Block","src":"30479:107:161","statements":[{"AST":{"nativeSrc":"30518:58:161","nodeType":"YulBlock","src":"30518:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30541:6:161","nodeType":"YulIdentifier","src":"30541:6:161"},{"name":"size","nativeSrc":"30549:4:161","nodeType":"YulIdentifier","src":"30549:4:161"},{"name":"topic1","nativeSrc":"30555:6:161","nodeType":"YulIdentifier","src":"30555:6:161"}],"functionName":{"name":"log1","nativeSrc":"30536:4:161","nodeType":"YulIdentifier","src":"30536:4:161"},"nativeSrc":"30536:26:161","nodeType":"YulFunctionCall","src":"30536:26:161"},"nativeSrc":"30536:26:161","nodeType":"YulExpressionStatement","src":"30536:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30541:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30549:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30555:6:161","valueSize":1}],"flags":["memory-safe"],"id":78293,"nodeType":"InlineAssembly","src":"30493:83:161"}]}},{"expression":{"hexValue":"74727565","id":78314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31059:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78115,"id":78315,"nodeType":"Return","src":"31052:11:161"}]},"documentation":{"id":78108,"nodeType":"StructuredDocumentation","src":"24152:3068:161","text":" @dev Tries to parse an event from the Sails framework and emit it in Solidity notation.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n Example of defining Solidity events in WASM contract based on Sails framework:\n ```rust\n #[event]\n #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)]\n #[codec(crate = scale_codec)]\n #[scale_info(crate = scale_info)]\n pub enum CounterEvents {\n Added {\n #[indexed]\n source: ActorId,\n value: u32,\n },\n }\n ```\n User also generates \"Solidity ABI interface\" that allows services like Etherscan to decode events from `Mirror`\n (since we use the ABI interface as \"proxy implementation\"):\n ```solidity\n interface ICounter {\n event Added(address indexed source, uint32 value);\n // ... other events\n }\n ```\n Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event,\n which will then be emitted by `Mirror` smart contract as showed on services like Etherscan:\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n ```\n All the `emit_eth_event` method in the Sails framework does is call the syscall\n `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload`\n is encoded in Solidity notation as described below.\n Format in which the Sails framework sends events:\n - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`).\n specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called.\n - `bytes32 topic1` (required)\n should never match our event selectors!\n - `bytes32 topic2` (optional)\n - `bytes32 topic3` (optional)\n - `bytes32 topic4` (optional)\n - `bytes payload` (optional)\n contains encoded data of event in form of `abi.encode(...)`.\n @param _message The message to be parsed and emitted as Solidity event.\n @return isSailsEvent `true` in case of success and `false` in case of error (no matching event found)."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"27234:26:161","parameters":{"id":78112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78111,"mutability":"mutable","name":"_message","nameLocation":"27283:8:161","nodeType":"VariableDeclaration","scope":78317,"src":"27261:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78110,"nodeType":"UserDefinedTypeName","pathNode":{"id":78109,"name":"Gear.Message","nameLocations":["27261:4:161","27266:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"27261:12:161"},"referencedDeclaration":83101,"src":"27261:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"27260:32:161"},"returnParameters":{"id":78115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78114,"mutability":"mutable","name":"isSailsEvent","nameLocation":"27315:12:161","nodeType":"VariableDeclaration","scope":78317,"src":"27310:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78113,"name":"bool","nodeType":"ElementaryTypeName","src":"27310:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27309:19:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78448,"nodeType":"FunctionDefinition","src":"37037:1645:161","nodes":[],"body":{"id":78447,"nodeType":"Block","src":"37104:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78324,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37118:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37127:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"37118:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78445,"nodeType":"Block","src":"38333:343:161","statements":[{"assignments":[78413],"declarations":[{"constant":false,"id":78413,"mutability":"mutable","name":"transferSuccess","nameLocation":"38352:15:161","nodeType":"VariableDeclaration","scope":78445,"src":"38347:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78412,"name":"bool","nodeType":"ElementaryTypeName","src":"38347:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78420,"initialValue":{"arguments":[{"expression":{"id":78415,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38385:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38394:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"38385:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78417,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38407:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38416:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38407:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78414,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"38370:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38370:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"38347:75:161"},{"condition":{"id":78422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38440:16:161","subExpression":{"id":78421,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78413,"src":"38441:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78431,"nodeType":"IfStatement","src":"38436:117:161","trueBody":{"id":78430,"nodeType":"Block","src":"38458:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78424,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38501:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38510:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"38501:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78426,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38523:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38532:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38523:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78423,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"38481:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38481:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78429,"nodeType":"EmitStatement","src":"38476:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78433,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38578:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38587:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"38578:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78435,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38605:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38596:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78437,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38612:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38621:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38612:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38634:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"38612:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78440,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38638:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38647:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38638:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38660:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"38638:26:161","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":78432,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"38572:5:161","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":78443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38572:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78444,"nodeType":"EmitStatement","src":"38567:98:161"}]},"id":78446,"nodeType":"IfStatement","src":"37114:1562:161","trueBody":{"id":78411,"nodeType":"Block","src":"37133:1194:161","statements":[{"assignments":[78327],"declarations":[{"constant":false,"id":78327,"mutability":"mutable","name":"isSuccessReply","nameLocation":"37152:14:161","nodeType":"VariableDeclaration","scope":78411,"src":"37147:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78326,"name":"bool","nodeType":"ElementaryTypeName","src":"37147:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78335,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78328,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37169:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37178:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"37169:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37191:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"37169:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78332,"indexExpression":{"hexValue":"30","id":78331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37196:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37169:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37202:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37169:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37147:56:161"},{"assignments":[78337],"declarations":[{"constant":false,"id":78337,"mutability":"mutable","name":"payload","nameLocation":"37231:7:161","nodeType":"VariableDeclaration","scope":78411,"src":"37218:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78336,"name":"bytes","nodeType":"ElementaryTypeName","src":"37218:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78338,"nodeType":"VariableDeclarationStatement","src":"37218:20:161"},{"condition":{"id":78339,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78327,"src":"37257:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78362,"nodeType":"Block","src":"37338:348:161","statements":[{"expression":{"id":78360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78346,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37508:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78349,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"37562:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37573:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73741,"src":"37562:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":78351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37586:8:161","memberName":"selector","nodeType":"MemberAccess","src":"37562:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":78352,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37605:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"37596:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78354,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37609:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37618:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"37609:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78356,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37627:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37636:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"37627:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37649:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"37627:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78347,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37518:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37522:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"37518:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":78359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37518:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"37508:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78361,"nodeType":"ExpressionStatement","src":"37508:163:161"}]},"id":78363,"nodeType":"IfStatement","src":"37253:433:161","trueBody":{"id":78345,"nodeType":"Block","src":"37273:59:161","statements":[{"expression":{"id":78343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78340,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37291:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78341,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37301:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37310:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"37301:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"37291:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78344,"nodeType":"ExpressionStatement","src":"37291:26:161"}]}},{"assignments":[78365,null],"declarations":[{"constant":false,"id":78365,"mutability":"mutable","name":"success","nameLocation":"37706:7:161","nodeType":"VariableDeclaration","scope":78411,"src":"37701:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78364,"name":"bool","nodeType":"ElementaryTypeName","src":"37701:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78375,"initialValue":{"arguments":[{"id":78373,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37781:7:161","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":{"expression":{"id":78366,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37718:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37727:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37718:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37739:4:161","memberName":"call","nodeType":"MemberAccess","src":"37718:25:161","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":78372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37749:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":78370,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37765:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37774:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"37765:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"37718:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37718:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"37700:89:161"},{"condition":{"id":78377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37808:8:161","subExpression":{"id":78376,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78365,"src":"37809:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78410,"nodeType":"IfStatement","src":"37804:513:161","trueBody":{"id":78409,"nodeType":"Block","src":"37818:499:161","statements":[{"assignments":[78379],"declarations":[{"constant":false,"id":78379,"mutability":"mutable","name":"transferSuccess","nameLocation":"37841:15:161","nodeType":"VariableDeclaration","scope":78409,"src":"37836:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78378,"name":"bool","nodeType":"ElementaryTypeName","src":"37836:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78386,"initialValue":{"arguments":[{"expression":{"id":78381,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37874:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37883:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37874:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78383,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37896:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37905:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"37896:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78380,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"37859:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37859:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37836:75:161"},{"condition":{"id":78388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37933:16:161","subExpression":{"id":78387,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78379,"src":"37934:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78397,"nodeType":"IfStatement","src":"37929:125:161","trueBody":{"id":78396,"nodeType":"Block","src":"37951:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78390,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37998:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38007:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37998:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78392,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38020:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38029:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38020:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78389,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"37978:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37978:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78395,"nodeType":"EmitStatement","src":"37973:62:161"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78399,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38233:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38242:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38233:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78401,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38249:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38258:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38249:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38271:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"38249:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78404,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38275:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38284:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38275:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38297:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"38275:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":78398,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"38217:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38217:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78408,"nodeType":"EmitStatement","src":"38212:90:161"}]}}]}}]},"documentation":{"id":78318,"nodeType":"StructuredDocumentation","src":"31076:5956:161","text":" @dev Internal function to send reply message.\n Non-zero value always sent since never goes to mailbox.\n Emits `Reply` event if `_message.call = false`.\n If `_message.call = true`, the call will be made to `_message.destination` with\n gas limit of 500_000 to prevent DoS attacks and with `_message.value`.\n The `_message.replyDetails` will also be evaluated to determine the reply's success.\n If `gear_core::message::ReplyCode` is successful, `_message.payload` will be used.\n If unsuccessful, `payload = ICallbacks.onErrorReply(_message.id, _message.payload, _message.replyDetails.code)`\n will be used and the appropriate method on `_message.destination` will be called.\n Function will also always attempt to send `_message.value`. If this fails for some reason,\n the `ReplyTransferFailed` event will be emitted.\n If call fails, then `ReplyCallFailed` event will be emitted.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n All the contract method does is return `u32` as result (reply):\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User also generates \"Solidity Callback Interface\" and implements own `CounterCaller` smart contract,\n which will handle reply hooks in methods starting with `replyOn_`:\n ```solidity\n interface ICounterCallbacks {\n function replyOn_init(bytes32 messageId) external;\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external;\n // ... other methods\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode) external payable;\n }\n contract CounterCaller is ICounterCallbacks {\n ICounter public immutable MIRROR;\n constructor(ICounter _mirror) {\n MIRROR = _mirror;\n }\n modifier onlyMirror() {\n _onlyMirror();\n _;\n }\n function _onlyMirror() internal view {\n require(msg.sender == address(MIRROR));\n }\n // Call `Counter` constructor on our platform\n function init(uint32 counter) external {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.init(true, counter);\n }\n function replyOn_init(bytes32 messageId) external onlyMirror {\n // ...\n }\n // Compute `Counter.add(uint32 value) -> uint32 reply` on our platform\n mapping(bytes32 messageId => bool knownMessage) public counterAddInputs;\n mapping(bytes32 messageId => uint32 output) public counterAddResults;\n function counterAdd(uint32 value) external returns (bytes32 messageId) {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.counterAdd(true, value);\n counterAddInputs[_messageId] = true;\n messageId = _messageId;\n }\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external onlyMirror {\n counterAddResults[messageId] = reply;\n }\n // Handle `Counter` errors on our platform\n event ErrorReply(bytes32 messageId, bytes payload, bytes4 replyCode);\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode)\n external\n payable\n onlyMirror\n {\n emit ErrorReply(messageId, payload, replyCode);\n }\n }\n ```\n User calls `CounterCaller.counterAdd(uint32 value)`, and the smart contract calls `ICounter.counterAdd(bool _callReply=true, uint32 value)`.\n Result calculated in WASM smart contract on Sails framework in `Counter.add(uint32 value) -> uint32 reply` method will be passed to\n `replyOn_counterAdd(bytes32 messageId, uint32 reply)`.\n @param _message The reply message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"37046:17:161","parameters":{"id":78322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78321,"mutability":"mutable","name":"_message","nameLocation":"37086:8:161","nodeType":"VariableDeclaration","scope":78448,"src":"37064:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78320,"nodeType":"UserDefinedTypeName","pathNode":{"id":78319,"name":"Gear.Message","nameLocations":["37064:4:161","37069:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"37064:12:161"},"referencedDeclaration":83101,"src":"37064:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37063:32:161"},"returnParameters":{"id":78323,"nodeType":"ParameterList","parameters":[],"src":"37104:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78561,"nodeType":"FunctionDefinition","src":"39220:1028:161","nodes":[],"body":{"id":78560,"nodeType":"Block","src":"39315:933:161","nodes":[],"statements":[{"assignments":[78459],"declarations":[{"constant":false,"id":78459,"mutability":"mutable","name":"claimsLen","nameLocation":"39333:9:161","nodeType":"VariableDeclaration","scope":78560,"src":"39325:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78458,"name":"uint256","nodeType":"ElementaryTypeName","src":"39325:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78462,"initialValue":{"expression":{"id":78460,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78453,"src":"39345:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39353:6:161","memberName":"length","nodeType":"MemberAccess","src":"39345:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39325:34:161"},{"assignments":[78464],"declarations":[{"constant":false,"id":78464,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"39377:16:161","nodeType":"VariableDeclaration","scope":78560,"src":"39369:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78463,"name":"uint256","nodeType":"ElementaryTypeName","src":"39369:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78468,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78465,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39396:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39408:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39396:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39369:41:161"},{"assignments":[78470],"declarations":[{"constant":false,"id":78470,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"39428:18:161","nodeType":"VariableDeclaration","scope":78560,"src":"39420:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78469,"name":"uint256","nodeType":"ElementaryTypeName","src":"39420:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78475,"initialValue":{"arguments":[{"id":78473,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78464,"src":"39465:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78471,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39449:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39456:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"39449:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39449:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39420:62:161"},{"assignments":[78477],"declarations":[{"constant":false,"id":78477,"mutability":"mutable","name":"offset","nameLocation":"39500:6:161","nodeType":"VariableDeclaration","scope":78560,"src":"39492:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39492:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78479,"initialValue":{"hexValue":"30","id":78478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39509:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39492:18:161"},{"body":{"id":78551,"nodeType":"Block","src":"39561:588:161","statements":[{"assignments":[78494],"declarations":[{"constant":false,"id":78494,"mutability":"mutable","name":"claim","nameLocation":"39600:5:161","nodeType":"VariableDeclaration","scope":78551,"src":"39575:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":78493,"nodeType":"UserDefinedTypeName","pathNode":{"id":78492,"name":"Gear.ValueClaim","nameLocations":["39575:4:161","39580:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"39575:15:161"},"referencedDeclaration":83207,"src":"39575:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":78498,"initialValue":{"baseExpression":{"id":78495,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78453,"src":"39608:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78497,"indexExpression":{"id":78496,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39616:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39608:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"39575:43:161"},{"assignments":[78500],"declarations":[{"constant":false,"id":78500,"mutability":"mutable","name":"claimHash","nameLocation":"39640:9:161","nodeType":"VariableDeclaration","scope":78551,"src":"39632:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39632:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78510,"initialValue":{"arguments":[{"expression":{"id":78503,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39672:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39678:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"39672:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78505,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39689:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39695:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"39689:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78507,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39708:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39714:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"39708:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":78501,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"39652:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":78502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39657:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83413,"src":"39652:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":78509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39652:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39632:88:161"},{"expression":{"arguments":[{"id":78514,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78470,"src":"39760:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78515,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39780:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78516,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78500,"src":"39788:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78511,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39734:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39741:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"39734:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39734:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78518,"nodeType":"ExpressionStatement","src":"39734:64:161"},{"id":78523,"nodeType":"UncheckedBlock","src":"39812:55:161","statements":[{"expression":{"id":78521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78519,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39840:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39850:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39840:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78522,"nodeType":"ExpressionStatement","src":"39840:12:161"}]},{"assignments":[78525],"declarations":[{"constant":false,"id":78525,"mutability":"mutable","name":"success","nameLocation":"39886:7:161","nodeType":"VariableDeclaration","scope":78551,"src":"39881:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78524,"name":"bool","nodeType":"ElementaryTypeName","src":"39881:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78532,"initialValue":{"arguments":[{"expression":{"id":78527,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39911:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39917:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"39911:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78529,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39930:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39936:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"39930:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78526,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"39896:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39896:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39881:61:161"},{"condition":{"id":78533,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78525,"src":"39960:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78549,"nodeType":"Block","src":"40055:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78543,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40095:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40101:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"40095:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78545,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40112:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40118:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"40112:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78542,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"40078:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40078:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78548,"nodeType":"EmitStatement","src":"40073:51:161"}]},"id":78550,"nodeType":"IfStatement","src":"39956:183:161","trueBody":{"id":78541,"nodeType":"Block","src":"39969:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78535,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40005:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"40005:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78537,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40022:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40028:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"40022:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78534,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"39992:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39992:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78540,"nodeType":"EmitStatement","src":"39987:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39541:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78485,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39545:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39541:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78552,"initializationExpression":{"assignments":[78481],"declarations":[{"constant":false,"id":78481,"mutability":"mutable","name":"i","nameLocation":"39534:1:161","nodeType":"VariableDeclaration","scope":78552,"src":"39526:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78480,"name":"uint256","nodeType":"ElementaryTypeName","src":"39526:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78483,"initialValue":{"hexValue":"30","id":78482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39538:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39526:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39556:3:161","subExpression":{"id":78487,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39556:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78489,"nodeType":"ExpressionStatement","src":"39556:3:161"},"nodeType":"ForStatement","src":"39521:628:161"},{"expression":{"arguments":[{"id":78555,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78470,"src":"40201:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40221:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78557,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78464,"src":"40224:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78553,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"40166:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40173:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"40166:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78457,"id":78559,"nodeType":"Return","src":"40159:82:161"}]},"documentation":{"id":78449,"nodeType":"StructuredDocumentation","src":"38787:428:161","text":" @dev Internal function to claim values from messages in mailbox.\n It transfers value to each claim destination and emits appropriate events:\n - `ValueClaimed` event is emitted if transfer is successful\n - `ValueClaimFailed` event is emitted if transfer fails\n @param _claims The array of value claims to be claimed.\n @return claimsHash The hash of the claimed values."},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"39229:12:161","parameters":{"id":78454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78453,"mutability":"mutable","name":"_claims","nameLocation":"39269:7:161","nodeType":"VariableDeclaration","scope":78561,"src":"39242:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":78451,"nodeType":"UserDefinedTypeName","pathNode":{"id":78450,"name":"Gear.ValueClaim","nameLocations":["39242:4:161","39247:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"39242:15:161"},"referencedDeclaration":83207,"src":"39242:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":78452,"nodeType":"ArrayTypeName","src":"39242:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"39241:36:161"},"returnParameters":{"id":78457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78456,"mutability":"mutable","name":"claimsHash","nameLocation":"39303:10:161","nodeType":"VariableDeclaration","scope":78561,"src":"39295:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39295:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39294:20:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78594,"nodeType":"FunctionDefinition","src":"40514:586:161","nodes":[],"body":{"id":78593,"nodeType":"Block","src":"40578:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78569,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"40643:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40652:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"40643:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78572,"nodeType":"ExpressionStatement","src":"40643:13:161"},{"expression":{"id":78575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78573,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"40666:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78574,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78564,"src":"40678:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"40666:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78576,"nodeType":"ExpressionStatement","src":"40666:22:161"},{"assignments":[78578,78580],"declarations":[{"constant":false,"id":78578,"mutability":"mutable","name":"value","nameLocation":"40797:5:161","nodeType":"VariableDeclaration","scope":78593,"src":"40789:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78577,"name":"uint128","nodeType":"ElementaryTypeName","src":"40789:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78580,"mutability":"mutable","name":"success","nameLocation":"40809:7:161","nodeType":"VariableDeclaration","scope":78593,"src":"40804:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78579,"name":"bool","nodeType":"ElementaryTypeName","src":"40804:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":78583,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78581,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"40820:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40820:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"40788:65:161"},{"condition":{"id":78585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40867:8:161","subExpression":{"id":78584,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78580,"src":"40868:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78592,"nodeType":"IfStatement","src":"40863:231:161","trueBody":{"id":78591,"nodeType":"Block","src":"40877:217:161","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":78587,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78564,"src":"41065:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"41077:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78586,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"41028:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41028:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78590,"nodeType":"EmitStatement","src":"41023:60:161"}]}}]},"documentation":{"id":78562,"nodeType":"StructuredDocumentation","src":"40311:198:161","text":" @dev Sets the inheritor address, sets exited flag to `true` and\n transfer all available balance to the inheritor.\n @param _inheritor The address of the inheritor."},"implemented":true,"kind":"function","modifiers":[{"id":78567,"kind":"modifierInvocation","modifierName":{"id":78566,"name":"onlyIfActive","nameLocations":["40565:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"40565:12:161"},"nodeType":"ModifierInvocation","src":"40565:12:161"}],"name":"_setInheritor","nameLocation":"40523:13:161","parameters":{"id":78565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78564,"mutability":"mutable","name":"_inheritor","nameLocation":"40545:10:161","nodeType":"VariableDeclaration","scope":78594,"src":"40537:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78563,"name":"address","nodeType":"ElementaryTypeName","src":"40537:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40536:20:161"},"returnParameters":{"id":78568,"nodeType":"ParameterList","parameters":[],"src":"40578:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78609,"nodeType":"FunctionDefinition","src":"41203:281:161","nodes":[],"body":{"id":78608,"nodeType":"Block","src":"41257:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78600,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"41323:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78601,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"41335:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41323:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78603,"nodeType":"ExpressionStatement","src":"41323:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78605,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"41467:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78604,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"41454:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41454:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78607,"nodeType":"EmitStatement","src":"41449:28:161"}]},"documentation":{"id":78595,"nodeType":"StructuredDocumentation","src":"41106:92:161","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"41212:16:161","parameters":{"id":78598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78597,"mutability":"mutable","name":"_stateHash","nameLocation":"41237:10:161","nodeType":"VariableDeclaration","scope":78609,"src":"41229:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41229:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41228:20:161"},"returnParameters":{"id":78599,"nodeType":"ParameterList","parameters":[],"src":"41257:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78631,"nodeType":"FunctionDefinition","src":"41658:182:161","nodes":[],"body":{"id":78630,"nodeType":"Block","src":"41730:110:161","nodes":[],"statements":[{"assignments":[78619],"declarations":[{"constant":false,"id":78619,"mutability":"mutable","name":"wvaraAddr","nameLocation":"41748:9:161","nodeType":"VariableDeclaration","scope":78630,"src":"41740:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78618,"name":"address","nodeType":"ElementaryTypeName","src":"41740:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78625,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78621,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78612,"src":"41768:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78620,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"41760:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74990_$","typeString":"type(contract IRouter)"}},"id":78622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":78623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41780:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74684,"src":"41760:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"41740:53:161"},{"expression":{"arguments":[{"id":78627,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78619,"src":"41823:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78626,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"41810:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":78628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41810:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"functionReturnParameters":78617,"id":78629,"nodeType":"Return","src":"41803:30:161"}]},"documentation":{"id":78610,"nodeType":"StructuredDocumentation","src":"41526:127:161","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"41667:6:161","parameters":{"id":78613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78612,"mutability":"mutable","name":"routerAddr","nameLocation":"41682:10:161","nodeType":"VariableDeclaration","scope":78631,"src":"41674:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78611,"name":"address","nodeType":"ElementaryTypeName","src":"41674:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41673:20:161"},"returnParameters":{"id":78617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78631,"src":"41716:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":78615,"nodeType":"UserDefinedTypeName","pathNode":{"id":78614,"name":"IWrappedVara","nameLocations":["41716:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"41716:12:161"},"referencedDeclaration":75006,"src":"41716:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"41715:14:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78661,"nodeType":"FunctionDefinition","src":"42082:253:161","nodes":[],"body":{"id":78660,"nodeType":"Block","src":"42165:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78636,"src":"42179:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42188:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42179:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78657,"nodeType":"IfStatement","src":"42175:133:161","trueBody":{"id":78656,"nodeType":"Block","src":"42191:117:161","statements":[{"assignments":[78645,null],"declarations":[{"constant":false,"id":78645,"mutability":"mutable","name":"success","nameLocation":"42211:7:161","nodeType":"VariableDeclaration","scope":78656,"src":"42206:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78644,"name":"bool","nodeType":"ElementaryTypeName","src":"42206:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78653,"initialValue":{"arguments":[{"hexValue":"","id":78651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42266:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":78646,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"42223:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42235:4:161","memberName":"call","nodeType":"MemberAccess","src":"42223:16:161","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":78650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42245:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":78649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78636,"src":"42259:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"42223:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42223:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"42205:64:161"},{"expression":{"id":78654,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"42290:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78640,"id":78655,"nodeType":"Return","src":"42283:14:161"}]}},{"expression":{"hexValue":"74727565","id":78658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42324:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78640,"id":78659,"nodeType":"Return","src":"42317:11:161"}]},"documentation":{"id":78632,"nodeType":"StructuredDocumentation","src":"41846:231:161","text":" @dev Transfer ETH to destination address.\n It has gas limit of 5_000 to prevent DoS attacks.\n @param destination The address to transfer ETH to.\n @param value The amount of ETH to transfer."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"42091:14:161","parameters":{"id":78637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78634,"mutability":"mutable","name":"destination","nameLocation":"42114:11:161","nodeType":"VariableDeclaration","scope":78661,"src":"42106:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78633,"name":"address","nodeType":"ElementaryTypeName","src":"42106:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78636,"mutability":"mutable","name":"value","nameLocation":"42135:5:161","nodeType":"VariableDeclaration","scope":78661,"src":"42127:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78635,"name":"uint128","nodeType":"ElementaryTypeName","src":"42127:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"42105:36:161"},"returnParameters":{"id":78640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78661,"src":"42159:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78638,"name":"bool","nodeType":"ElementaryTypeName","src":"42159:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42158:6:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78722,"nodeType":"FunctionDefinition","src":"42636:1106:161","nodes":[],"body":{"id":78721,"nodeType":"Block","src":"42678:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42692:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42696:5:161","memberName":"value","nodeType":"MemberAccess","src":"42692:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42704:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42692:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42709:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42713:4:161","memberName":"data","nodeType":"MemberAccess","src":"42709:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42718:6:161","memberName":"length","nodeType":"MemberAccess","src":"42709:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42728:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42709:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42692:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42853:8:161","subExpression":{"id":78690,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"42854:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78692,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42865:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42869:4:161","memberName":"data","nodeType":"MemberAccess","src":"42865:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42874:6:161","memberName":"length","nodeType":"MemberAccess","src":"42865:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":78695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42884:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"42865:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42853:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78718,"nodeType":"Block","src":"43683:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78715,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74289,"src":"43704:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43704:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78717,"nodeType":"RevertStatement","src":"43697:28:161"}]},"id":78719,"nodeType":"IfStatement","src":"42849:887:161","trueBody":{"id":78714,"nodeType":"Block","src":"42890:787:161","statements":[{"assignments":[78700],"declarations":[{"constant":false,"id":78700,"mutability":"mutable","name":"callReply","nameLocation":"43353:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43345:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78699,"name":"uint256","nodeType":"ElementaryTypeName","src":"43345:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" @dev We only allow arbitrary calls to `!isSmall` `Mirror` contracts,\n which are more likely to come from their ABI interfaces.\n The minimum call data length is 0x24 (36 bytes) because:\n - 0x04 (4 bytes) for the function selector [0x00..0x04)\n - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24)","id":78701,"nodeType":"VariableDeclarationStatement","src":"43345:17:161"},{"AST":{"nativeSrc":"43402:63:161","nodeType":"YulBlock","src":"43402:63:161","statements":[{"nativeSrc":"43420:31:161","nodeType":"YulAssignment","src":"43420:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"43446:4:161","nodeType":"YulLiteral","src":"43446:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"43433:12:161","nodeType":"YulIdentifier","src":"43433:12:161"},"nativeSrc":"43433:18:161","nodeType":"YulFunctionCall","src":"43433:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"43420:9:161","nodeType":"YulIdentifier","src":"43420:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78700,"isOffset":false,"isSlot":false,"src":"43420:9:161","valueSize":1}],"flags":["memory-safe"],"id":78702,"nodeType":"InlineAssembly","src":"43377:88:161"},{"assignments":[78704],"declarations":[{"constant":false,"id":78704,"mutability":"mutable","name":"messageId","nameLocation":"43487:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43479:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43479:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78712,"initialValue":{"arguments":[{"expression":{"id":78706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"43512:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43516:4:161","memberName":"data","nodeType":"MemberAccess","src":"43512:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78708,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78700,"src":"43522:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43535:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43522:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78705,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"43499:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43499:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43479:58:161"},{"AST":{"nativeSrc":"43577:90:161","nodeType":"YulBlock","src":"43577:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43602:4:161","nodeType":"YulLiteral","src":"43602:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"43608:9:161","nodeType":"YulIdentifier","src":"43608:9:161"}],"functionName":{"name":"mstore","nativeSrc":"43595:6:161","nodeType":"YulIdentifier","src":"43595:6:161"},"nativeSrc":"43595:23:161","nodeType":"YulFunctionCall","src":"43595:23:161"},"nativeSrc":"43595:23:161","nodeType":"YulExpressionStatement","src":"43595:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43642:4:161","nodeType":"YulLiteral","src":"43642:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"43648:4:161","nodeType":"YulLiteral","src":"43648:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"43635:6:161","nodeType":"YulIdentifier","src":"43635:6:161"},"nativeSrc":"43635:18:161","nodeType":"YulFunctionCall","src":"43635:18:161"},"nativeSrc":"43635:18:161","nodeType":"YulExpressionStatement","src":"43635:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78704,"isOffset":false,"isSlot":false,"src":"43608:9:161","valueSize":1}],"flags":["memory-safe"],"id":78713,"nodeType":"InlineAssembly","src":"43552:115:161"}]}},"id":78720,"nodeType":"IfStatement","src":"42688:1048:161","trueBody":{"id":78689,"nodeType":"Block","src":"42731:112:161","statements":[{"assignments":[78678],"declarations":[{"constant":false,"id":78678,"mutability":"mutable","name":"value","nameLocation":"42753:5:161","nodeType":"VariableDeclaration","scope":78689,"src":"42745:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78677,"name":"uint128","nodeType":"ElementaryTypeName","src":"42745:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78684,"initialValue":{"arguments":[{"expression":{"id":78681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42769:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42773:5:161","memberName":"value","nodeType":"MemberAccess","src":"42769:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42761:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78679,"name":"uint128","nodeType":"ElementaryTypeName","src":"42761:7:161","typeDescriptions":{}}},"id":78683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42761:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"42745:34:161"},{"eventCall":{"arguments":[{"id":78686,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"42826:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78685,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"42799:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42799:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78688,"nodeType":"EmitStatement","src":"42794:38:161"}]}}]},"documentation":{"id":78662,"nodeType":"StructuredDocumentation","src":"42341:290:161","text":" @dev Fallback function for top-up owned balance in native currency (ETH)\n and for sending arbitrary calls to `!isSmall` `Mirror` contracts\n as messages to Sails framework.\n See the description of `Mirror.isSmall` field for details."},"implemented":true,"kind":"fallback","modifiers":[{"id":78665,"kind":"modifierInvocation","modifierName":{"id":78664,"name":"whenNotPaused","nameLocations":["42664:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"42664:13:161"},"nodeType":"ModifierInvocation","src":"42664:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78663,"nodeType":"ParameterList","parameters":[],"src":"42644:2:161"},"returnParameters":{"id":78666,"nodeType":"ParameterList","parameters":[],"src":"42678:0:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77300,"name":"IMirror","nameLocations":["2640:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"2640:7:161"},"id":77301,"nodeType":"InheritanceSpecifier","src":"2640:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77299,"nodeType":"StructuredDocumentation","src":"621:1999:161","text":" @dev Mirror smart contract is responsible for storing the minimal state of programs on our platform\n and transitioning from one state to another by calling `performStateTransition(...)`. It's built\n on actor-model architecture, and in Ethereum, we implement this through \"request-response\" model.\n This means we have two types of events:\n - \"Requested\" events - when user calls one of the methods marked as \"Primary Gear logic\" we emit such an event,\n and all our nodes process it off-chain\n - \"Responded\" events - when we receive response from our nodes and transmit it back to Ethereum.\n All logic called within `performStateTransition(...)` and leading to methods marked as\n \"Private calls related to performStateTransition\" are such events.\n It's important not to confuse these two, as this is how we implement the actor model in Ethereum.\n Mirror economic model has two balances:\n - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`.\n This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`.\n - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain.\n It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform.\n You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the\n Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users\n can use it for free. This is called the \"reverse-gas model\". Developer can also require the presence of `value` in\n the owned balance when calling methods in a WASM smart contract to protect their program from spam."},"fullyImplemented":true,"linearizedBaseContracts":[78723,74395],"name":"Mirror","nameLocation":"2630:6:161","scope":78724,"usedErrors":[74253,74256,74259,74262,74265,74268,74271,74274,74277,74279,74281,74283,74285,74287,74289],"usedEvents":[74141,74154,74165,74172,74177,74182,74193,74202,74213,74222,74229,74236,74243,74250]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":161} \ 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":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUpWithPermit","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"},{"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":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"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":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"}],"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":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"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":"call","type":"bool","internalType":"bool"}]},{"name":"events","type":"bytes[]","internalType":"bytes[]"},{"name":"ethEvents","type":"bytes[]","internalType":"bytes[]"}]}],"outputs":[{"name":"transitionHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"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":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"GearEvent","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"}],"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":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"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"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"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":"ReplyCallFailed","inputs":[{"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":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"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":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611e0438819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611d5e90816100a6823960805181818161023801528181610e4e015281816114b40152818161156a0152818161169301526116d50152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610181575b5061001861149f565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f5761007861153c565b6001541580159061014b575b1561013c576001600160801b03341661009c8161167b565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c90816336a52a18146113315750806342129d00146112355780635ce6c32714611213578063701da98e146111f7578063704ed542146111a35780637a8e0cdd1461110f57806391d5a64c146110b65780639ce110d71461108e578063affed0e014611071578063bfa2857614610f26578063c604969214610e08578063e43f343314610d9d578063f76207bb1461026a5763f887ea400361000f57346102675780600319360112610267576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b506020366003190112610267576001600160401b03600435116102675761014060043536036003190112610267576102a06116d3565b6102ae60043560040161141d565b306001600160a01b0390911603610d8e576102cd60a460043501611431565b610d73575b6102e660e460043501600435600401611452565b90818060051b0460201482151715610d5f576103048260051b611858565b83805b84821015610836578160051b8401359160de19853603018312156108325782850136039160e0831261082e576040519260c084018481106001600160401b0382111761081a5760405286850180358552602001356001600160a01b0381168103610812576020850152604085880101356001600160401b0381116108125736601f82888b0101011215610812576103a990369089880101803590602001611794565b604085015260608588010135906001600160801b0382168203610812576040916060860152607f19011261082e5760405190604082018281106001600160401b0382111761081a576040528685016080810135835260a001356001600160e01b0319811690036108165786850160a081013560208401526080850183905260c0013591821515830361081257846104ce603560548660209760a060019b0152845195888601519160606040880151970151918051908b63ffffffff60e01b91015116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b168685015260648401526084830152151560f81b6088820152030160158101845201826113e8565b519020868201520192858101608001356104f4576104ed908601611892565b0190610307565b61050260c082880101611431565b15610703578786826001600160f81b031961052182840160a00161187d565b841a60f81b16156060905f146106905750610547604061054e9285940101858b016117ca565b3691611794565b61055c6020858b010161141d565b6001600160801b036105726060878d010161143e565b16602083519301916207a120f161058761164c565b5015610594575b506104ed565b6105b96105a560208389010161141d565b6105b36060848a010161143e565b9061182b565b15610629575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c360406105f06060848a010161143e565b60806001600160e01b03196106098b870160a00161187d565b16946001600160801b038451931683528a0101356020820152a25f61058e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a61065860208389010161141d565b6106666060848a010161143e565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a16105bf565b83926106fe916106e16106a985840160408101906117ca565b6106b760a08887010161187d565b93604051978896634a646c7f60e01b6020890152013560248701526044860152608485019161139a565b9063ffffffff60e01b16606483015203601f1981018352826113e8565b61054e565b6107146105a560208389010161141d565b156107ab575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c661074b87830160408101906117ca565b6107596060858b010161143e565b60806001600160e01b0319610772878d0160a00161187d565b16956001600160801b0361079360405196879660608852606088019161139a565b931660208501528b01013560408301520390a26104ed565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a6107da60208389010161141d565b6107e86060848a010161143e565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a161071a565b8980fd5b8880fd5b634e487b7160e01b8a52604160045260248afd5b8780fd5b8680fd5b85838660051b902060c46004350135602219600435360301811215610d5b5760043501906004820135916001600160401b038311610d57576060830236036024820113610d57578260051b9083820460201484151715610cc35761089c82949392611858565b91859486955b858710156109d7576108d99495966001916004606083028701019061093b610932602080850135938c816060604089019e8f61141d565b9801976108e58961143e565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526109256064826113e8565b519020910152019961141d565b6105b38461143e565b1561098e5761096a7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261143e565b604080519283526001600160801b0391909116602083015290a15b019594936108a2565b6109b87f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261143e565b604080519283526001600160801b0391909116602083015290a1610985565b81852083896109ef6004803561010481019101611452565b8060051b9181830460201482151715610d4357610a0b83611858565b918491825b828410610cd7575050505020610a3161012460043501600435600401611452565b8060051b9181830460201482151715610cc357610a4d83611858565b918591825b828410610c895750505050209060446004350193610a6f85611431565b15610c5757610a8260646004350161141d565b95610a8b61153c565b60025496600186816101008160a81b038460081b166affffffffffffffffffffff60a81b8c161717998a600255161715610c4857602097476001600160801b031690610ae490829060081c6001600160a01b031661182b565b15610bfb575b50505b8454602460043501359586809203610bca575b5050610b19610b1360043560040161141d565b96611431565b610b2760646004350161141d565b610b3560846004350161143e565b90610b4460a460043501611431565b92604051988b8a019a6001600160601b03199060601b168b5260348a0152151560f81b60548901526001600160601b03199060601b1660558801526001600160801b03199060801b166069870152151560f81b6079860152607a850152609a84015260ba83015260da82015260da8152610bbf60fa826113e8565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093087604051878152a18488610b00565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a18780610aea565b63463a5c5f60e01b8652600486fd5b6001600160a01b03610c6d60043560640161141d565b16610c7a57602095610aed565b6304c3c7a160e41b8452600484fd5b6020600191610c9c6105478787876117fc565b828151910120818801520193610cbc610cb68286866117fc565b906119b7565b0192610a52565b634e487b7160e01b85526011600452602485fd5b6020600191610cea6105478787876117fc565b8281519101208188015201937f7663a1334632838f3d8ba885a6276c6f369bc435577c9e82d80e887dee236925610d228286866117fc565b610d3960405192839260208452602084019161139a565b0390a10192610a10565b634e487b7160e01b84526011600452602484fd5b8380fd5b8280fd5b634e487b7160e01b83526011600452602483fd5b610d89610d8460846004350161143e565b61167b565b6102d2565b63ed488aa360e01b8152600490fd5b5034610267578060031936011261026757610db661149f565b60025460ff811615610df957610de290476001600160801b03169060081c6001600160a01b031661182b565b15610dea5780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b5034610f225760a0366003190112610f2257610e22611384565b6044359060ff8216809203610f2257610e3961149f565b610e4161153c565b6001600160a01b03610e727f0000000000000000000000000000000000000000000000000000000000000000611714565b16803b15610f22575f809160e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af1610ef6575b505f516020611d3e5f395f51905f5291610eec602092611557565b604051908152a180f35b602091935091610f145f5f516020611d3e5f395f51905f52946113e8565b610eec5f9492505091610ed1565b5f80fd5b34610f22576080366003190112610f22576004356001600160a01b03811690819003610f22576024356001600160a01b03811690819003610f2257604435801515809103610f2257606435926001600160801b038416809403610f2257610f8b6116d3565b600354906001600160a01b0382166110625760ff8260a01c16611053577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416611044576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc558061102a57005b60205f516020611d3e5f395f51905f5291604051908152a1005b638778dcd360e01b5f5260045ffd5b6325f368db60e11b5f5260045ffd5b63f20d240560e01b5f5260045ffd5b34610f22575f366003190112610f22576020600154604051908152f35b34610f22575f366003190112610f22576003546040516001600160a01b039091168152602090f35b34610f22576020366003190112610f22576110cf61149f565b6110d761153c565b6110df611618565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a2005b6040366003190112610f22576024356001600160401b038111610f225761115b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611357565b61116692919261149f565b61116e61153c565b611176611618565b6001600160801b0334169061118a8261167b565b61119e6040519283923396600435856113ba565b0390a2005b34610f22576020366003190112610f22575f516020611d3e5f395f51905f5260206111cc611384565b6111d461149f565b6111dc61153c565b6111e581611557565b6001600160801b0360405191168152a1005b34610f22575f366003190112610f225760205f54604051908152f35b34610f22575f366003190112610f2257602060ff600254166040519015158152f35b6040366003190112610f22576004356001600160401b038111610f2257611260903690600401611357565b9060243590811515809203610f225761127761149f565b61127f61153c565b6001541580159061131d575b1561013c576001600160801b033416906112a48261167b565b600154933060601b5f528460145260345f20935f198614610128576113047f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549360016020980160015560405193878552608089860152608085019161139a565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b0316331461128b565b34610f22575f366003190112610f225760025460081c6001600160a01b03168152602090f35b9181601f84011215610f22578235916001600160401b038311610f225760208381860195010111610f2257565b600435906001600160801b0382168203610f2257565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113e1916001600160801b0393979697865260606020870152606086019161139a565b9416910152565b90601f801991011681019081106001600160401b0382111761140957604052565b634e487b7160e01b5f52604160045260245ffd5b356001600160a01b0381168103610f225790565b358015158103610f225790565b356001600160801b0381168103610f225790565b903590601e1981360301821215610f2257018035906001600160401b038211610f2257602001918160051b36038313610f2257565b90816020910312610f2257518015158103610f225790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611531575f91611502575b506114f357565b63d93c066560e01b5f5260045ffd5b611524915060203d60201161152a575b61151c81836113e8565b810190611487565b5f6114ec565b503d611512565b6040513d5f823e3d90fd5b60ff6002541661154857565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115685750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036115a085611714565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611531575f916115f9575b50156115ea57565b6303a25d1960e31b5f5260045ffd5b611612915060203d60201161152a5761151c81836113e8565b5f6115e2565b6001541561162257565b631a2efd3560e31b5f5260045ffd5b6001600160401b03811161140957601f01601f191660200190565b3d15611676573d9061165d82611631565b9161166b60405193846113e8565b82523d5f602084013e565b606090565b6001600160801b03168061168c5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16116bc61164c565b50156116c457565b6308eb200360e41b5f5260045ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361170557565b6375f48d7160e11b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611531575f91611752575b506001600160a01b031690565b90506020813d60201161178c575b8161176d602093836113e8565b81010312610f2257516001600160a01b0381168103610f22575f611745565b3d9150611760565b9291926117a082611631565b916117ae60405193846113e8565b829481845281830111610f22578281602093845f960137010152565b903590601e1981360301821215610f2257018035906001600160401b038211610f2257602001918136038313610f2257565b90821015611817576118139160051b8101906117ca565b9091565b634e487b7160e01b5f52603260045260245ffd5b906001600160801b03169081611842575050600190565b5f8080938193611388f161185461164c565b5090565b6040519190601f01601f191682016001600160401b03811183821017610f2257604052565b356001600160e01b031981168103610f225790565b61189e60c08201611431565b61190b575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736119066118d36020840161141d565b6118e060408501856117ca565b6118ef6060879593950161143e565b9060405194859460018060a01b03169735856113ba565b0390a2565b602081015f8061191a8361141d565b8161192860408701876117ca565b9190826040519384928337810182815203926207a120f161194761164c565b501561195357506118a3565b61197d7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161141d565b6119896060840161143e565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611906565b908015611d395781358060f81c90600182101580611d2e575b15611d285760f31c611fe016600181018310611d28576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611cfe575b80611cd4575b80611caa575b80611c80575b80611c69575b80611c3f575b80611c15575b80611beb575b80611bc1575b80611b97575b80611b6d575b80611b43575b80611b19575b80611aef575b15611ae8578190035f190191826001611a7c82611858565b93870101833760218501359460418101359160018103611aa05750505090919250a1565b60028103611aae57505050a2565b600381979593969497145f14611ac757505090919293a3565b600414611ad7575b505050505050565b6061013594a45f8080808080611acf565b5050505050565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611a64565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611a5e565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611a58565b507f7663a1334632838f3d8ba885a6276c6f369bc435577c9e82d80e887dee236925841415611a52565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611a4c565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611a46565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611a40565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611a3a565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611a34565b505f516020611d3e5f395f51905f52841415611a2e565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611a28565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611a22565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611a1c565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611a16565b50505050565b5060048211156119d0565b505056fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:42949:161:-:0;;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;7624:16;;2621:42949;;;;;;;;7624:16;2621:42949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2621:42949:161;;;;;;-1:-1:-1;2621:42949:161;;;;;-1:-1:-1;2621:42949:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610181575b5061001861149f565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f5761007861153c565b6001541580159061014b575b1561013c576001600160801b03341661009c8161167b565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c90816336a52a18146113315750806342129d00146112355780635ce6c32714611213578063701da98e146111f7578063704ed542146111a35780637a8e0cdd1461110f57806391d5a64c146110b65780639ce110d71461108e578063affed0e014611071578063bfa2857614610f26578063c604969214610e08578063e43f343314610d9d578063f76207bb1461026a5763f887ea400361000f57346102675780600319360112610267576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b506020366003190112610267576001600160401b03600435116102675761014060043536036003190112610267576102a06116d3565b6102ae60043560040161141d565b306001600160a01b0390911603610d8e576102cd60a460043501611431565b610d73575b6102e660e460043501600435600401611452565b90818060051b0460201482151715610d5f576103048260051b611858565b83805b84821015610836578160051b8401359160de19853603018312156108325782850136039160e0831261082e576040519260c084018481106001600160401b0382111761081a5760405286850180358552602001356001600160a01b0381168103610812576020850152604085880101356001600160401b0381116108125736601f82888b0101011215610812576103a990369089880101803590602001611794565b604085015260608588010135906001600160801b0382168203610812576040916060860152607f19011261082e5760405190604082018281106001600160401b0382111761081a576040528685016080810135835260a001356001600160e01b0319811690036108165786850160a081013560208401526080850183905260c0013591821515830361081257846104ce603560548660209760a060019b0152845195888601519160606040880151970151918051908b63ffffffff60e01b91015116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b168685015260648401526084830152151560f81b6088820152030160158101845201826113e8565b519020868201520192858101608001356104f4576104ed908601611892565b0190610307565b61050260c082880101611431565b15610703578786826001600160f81b031961052182840160a00161187d565b841a60f81b16156060905f146106905750610547604061054e9285940101858b016117ca565b3691611794565b61055c6020858b010161141d565b6001600160801b036105726060878d010161143e565b16602083519301916207a120f161058761164c565b5015610594575b506104ed565b6105b96105a560208389010161141d565b6105b36060848a010161143e565b9061182b565b15610629575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c360406105f06060848a010161143e565b60806001600160e01b03196106098b870160a00161187d565b16946001600160801b038451931683528a0101356020820152a25f61058e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a61065860208389010161141d565b6106666060848a010161143e565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a16105bf565b83926106fe916106e16106a985840160408101906117ca565b6106b760a08887010161187d565b93604051978896634a646c7f60e01b6020890152013560248701526044860152608485019161139a565b9063ffffffff60e01b16606483015203601f1981018352826113e8565b61054e565b6107146105a560208389010161141d565b156107ab575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c661074b87830160408101906117ca565b6107596060858b010161143e565b60806001600160e01b0319610772878d0160a00161187d565b16956001600160801b0361079360405196879660608852606088019161139a565b931660208501528b01013560408301520390a26104ed565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a6107da60208389010161141d565b6107e86060848a010161143e565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a161071a565b8980fd5b8880fd5b634e487b7160e01b8a52604160045260248afd5b8780fd5b8680fd5b85838660051b902060c46004350135602219600435360301811215610d5b5760043501906004820135916001600160401b038311610d57576060830236036024820113610d57578260051b9083820460201484151715610cc35761089c82949392611858565b91859486955b858710156109d7576108d99495966001916004606083028701019061093b610932602080850135938c816060604089019e8f61141d565b9801976108e58961143e565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526109256064826113e8565b519020910152019961141d565b6105b38461143e565b1561098e5761096a7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261143e565b604080519283526001600160801b0391909116602083015290a15b019594936108a2565b6109b87f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261143e565b604080519283526001600160801b0391909116602083015290a1610985565b81852083896109ef6004803561010481019101611452565b8060051b9181830460201482151715610d4357610a0b83611858565b918491825b828410610cd7575050505020610a3161012460043501600435600401611452565b8060051b9181830460201482151715610cc357610a4d83611858565b918591825b828410610c895750505050209060446004350193610a6f85611431565b15610c5757610a8260646004350161141d565b95610a8b61153c565b60025496600186816101008160a81b038460081b166affffffffffffffffffffff60a81b8c161717998a600255161715610c4857602097476001600160801b031690610ae490829060081c6001600160a01b031661182b565b15610bfb575b50505b8454602460043501359586809203610bca575b5050610b19610b1360043560040161141d565b96611431565b610b2760646004350161141d565b610b3560846004350161143e565b90610b4460a460043501611431565b92604051988b8a019a6001600160601b03199060601b168b5260348a0152151560f81b60548901526001600160601b03199060601b1660558801526001600160801b03199060801b166069870152151560f81b6079860152607a850152609a84015260ba83015260da82015260da8152610bbf60fa826113e8565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093087604051878152a18488610b00565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a18780610aea565b63463a5c5f60e01b8652600486fd5b6001600160a01b03610c6d60043560640161141d565b16610c7a57602095610aed565b6304c3c7a160e41b8452600484fd5b6020600191610c9c6105478787876117fc565b828151910120818801520193610cbc610cb68286866117fc565b906119b7565b0192610a52565b634e487b7160e01b85526011600452602485fd5b6020600191610cea6105478787876117fc565b8281519101208188015201937f7663a1334632838f3d8ba885a6276c6f369bc435577c9e82d80e887dee236925610d228286866117fc565b610d3960405192839260208452602084019161139a565b0390a10192610a10565b634e487b7160e01b84526011600452602484fd5b8380fd5b8280fd5b634e487b7160e01b83526011600452602483fd5b610d89610d8460846004350161143e565b61167b565b6102d2565b63ed488aa360e01b8152600490fd5b5034610267578060031936011261026757610db661149f565b60025460ff811615610df957610de290476001600160801b03169060081c6001600160a01b031661182b565b15610dea5780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b5034610f225760a0366003190112610f2257610e22611384565b6044359060ff8216809203610f2257610e3961149f565b610e4161153c565b6001600160a01b03610e727f0000000000000000000000000000000000000000000000000000000000000000611714565b16803b15610f22575f809160e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af1610ef6575b505f516020611d3e5f395f51905f5291610eec602092611557565b604051908152a180f35b602091935091610f145f5f516020611d3e5f395f51905f52946113e8565b610eec5f9492505091610ed1565b5f80fd5b34610f22576080366003190112610f22576004356001600160a01b03811690819003610f22576024356001600160a01b03811690819003610f2257604435801515809103610f2257606435926001600160801b038416809403610f2257610f8b6116d3565b600354906001600160a01b0382166110625760ff8260a01c16611053577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416611044576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc558061102a57005b60205f516020611d3e5f395f51905f5291604051908152a1005b638778dcd360e01b5f5260045ffd5b6325f368db60e11b5f5260045ffd5b63f20d240560e01b5f5260045ffd5b34610f22575f366003190112610f22576020600154604051908152f35b34610f22575f366003190112610f22576003546040516001600160a01b039091168152602090f35b34610f22576020366003190112610f22576110cf61149f565b6110d761153c565b6110df611618565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a2005b6040366003190112610f22576024356001600160401b038111610f225761115b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611357565b61116692919261149f565b61116e61153c565b611176611618565b6001600160801b0334169061118a8261167b565b61119e6040519283923396600435856113ba565b0390a2005b34610f22576020366003190112610f22575f516020611d3e5f395f51905f5260206111cc611384565b6111d461149f565b6111dc61153c565b6111e581611557565b6001600160801b0360405191168152a1005b34610f22575f366003190112610f225760205f54604051908152f35b34610f22575f366003190112610f2257602060ff600254166040519015158152f35b6040366003190112610f22576004356001600160401b038111610f2257611260903690600401611357565b9060243590811515809203610f225761127761149f565b61127f61153c565b6001541580159061131d575b1561013c576001600160801b033416906112a48261167b565b600154933060601b5f528460145260345f20935f198614610128576113047f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549360016020980160015560405193878552608089860152608085019161139a565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b0316331461128b565b34610f22575f366003190112610f225760025460081c6001600160a01b03168152602090f35b9181601f84011215610f22578235916001600160401b038311610f225760208381860195010111610f2257565b600435906001600160801b0382168203610f2257565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113e1916001600160801b0393979697865260606020870152606086019161139a565b9416910152565b90601f801991011681019081106001600160401b0382111761140957604052565b634e487b7160e01b5f52604160045260245ffd5b356001600160a01b0381168103610f225790565b358015158103610f225790565b356001600160801b0381168103610f225790565b903590601e1981360301821215610f2257018035906001600160401b038211610f2257602001918160051b36038313610f2257565b90816020910312610f2257518015158103610f225790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611531575f91611502575b506114f357565b63d93c066560e01b5f5260045ffd5b611524915060203d60201161152a575b61151c81836113e8565b810190611487565b5f6114ec565b503d611512565b6040513d5f823e3d90fd5b60ff6002541661154857565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115685750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036115a085611714565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611531575f916115f9575b50156115ea57565b6303a25d1960e31b5f5260045ffd5b611612915060203d60201161152a5761151c81836113e8565b5f6115e2565b6001541561162257565b631a2efd3560e31b5f5260045ffd5b6001600160401b03811161140957601f01601f191660200190565b3d15611676573d9061165d82611631565b9161166b60405193846113e8565b82523d5f602084013e565b606090565b6001600160801b03168061168c5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16116bc61164c565b50156116c457565b6308eb200360e41b5f5260045ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361170557565b6375f48d7160e11b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611531575f91611752575b506001600160a01b031690565b90506020813d60201161178c575b8161176d602093836113e8565b81010312610f2257516001600160a01b0381168103610f22575f611745565b3d9150611760565b9291926117a082611631565b916117ae60405193846113e8565b829481845281830111610f22578281602093845f960137010152565b903590601e1981360301821215610f2257018035906001600160401b038211610f2257602001918136038313610f2257565b90821015611817576118139160051b8101906117ca565b9091565b634e487b7160e01b5f52603260045260245ffd5b906001600160801b03169081611842575050600190565b5f8080938193611388f161185461164c565b5090565b6040519190601f01601f191682016001600160401b03811183821017610f2257604052565b356001600160e01b031981168103610f225790565b61189e60c08201611431565b61190b575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736119066118d36020840161141d565b6118e060408501856117ca565b6118ef6060879593950161143e565b9060405194859460018060a01b03169735856113ba565b0390a2565b602081015f8061191a8361141d565b8161192860408701876117ca565b9190826040519384928337810182815203926207a120f161194761164c565b501561195357506118a3565b61197d7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161141d565b6119896060840161143e565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611906565b908015611d395781358060f81c90600182101580611d2e575b15611d285760f31c611fe016600181018310611d28576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611cfe575b80611cd4575b80611caa575b80611c80575b80611c69575b80611c3f575b80611c15575b80611beb575b80611bc1575b80611b97575b80611b6d575b80611b43575b80611b19575b80611aef575b15611ae8578190035f190191826001611a7c82611858565b93870101833760218501359460418101359160018103611aa05750505090919250a1565b60028103611aae57505050a2565b600381979593969497145f14611ac757505090919293a3565b600414611ad7575b505050505050565b6061013594a45f8080808080611acf565b5050505050565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611a64565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611a5e565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611a58565b507f7663a1334632838f3d8ba885a6276c6f369bc435577c9e82d80e887dee236925841415611a52565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611a4c565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611a46565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611a40565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611a3a565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611a34565b505f516020611d3e5f395f51905f52841415611a2e565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611a28565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611a22565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611a1c565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611a16565b50505050565b5060048211156119d0565b505056fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:42949:161:-:0;;;;;;;;;;-1:-1:-1;9882:69:161;;;:::i;:::-;44518:9;:13;;:37;;;-1:-1:-1;44514:1048:161;;;44625:33;2621:42949;;;-1:-1:-1;;;;;44518:9:161;2621:42949;;;44625:33;2621:42949;44514:1048;2621:42949;44680:7;2621:42949;;;;44679:8;:35;;;44514:1048;44675:887;;;8798:67;;:::i;:::-;8593:5;2621:42949;8593:9;;;:38;;;44675:887;2621:42949;;;-1:-1:-1;;;;;44518:9:161;2621:42949;19814:6;;;:::i;:::-;8593:5;2621:42949;20035:154;;;;44530:1;20035:154;;;;;44530:1;20035:154;2621:42949;;;;;;;8593:5;2621:42949;8593:5;2621:42949;20221:70;2621:42949;;;;;;;;;;;;;;;;;;44530:1;2621:42949;;;;44530:1;2621:42949;;;;;;20913:273:169;;2621:42949:161;;;;;;;;;;;;45203:88;45348:14;;20035:154;2621:42949;;;20250:10;;20221:70;;;;44530:1;45378:115;2621:42949;44530:1;45378:115;2621:42949;;;;44530:1;2621:42949;;;;;44530:1;2621:42949;;;;;44530:1;2621:42949;;44530:1;2621:42949;8593:38;-1:-1:-1;44680:7:161;2621:42949;-1:-1:-1;;;;;2621:42949:161;8606:10;:25;8593:38;;44675:887;45530:21;;;44530:1;45530:21;2621:42949;44530:1;45530:21;44679:35;2621:42949;44710:4;2621:42949;44691:23;;44679:35;;44518:37;2621:42949;;44535:20;44518:37;;2621:42949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:31;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;-1:-1:-1;2621:42949:161;;-1:-1:-1;;2621:42949:161;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;9503:63;;:::i;:::-;17254:19;2621:42949;;;;17254:19;:::i;:::-;17285:4;-1:-1:-1;;;;;2621:42949:161;;;17254:36;2621:42949;;17442:38;;2621:42949;;17442:38;;:::i;:::-;17438:113;;2621:42949;17672:20;;2621:42949;;17672:20;2621:42949;;;;17672:20;:::i;:::-;2621:42949;;;;;;;;;;;;;;21913:35;2621:42949;;;21913:35;:::i;:::-;21958:18;;22024:3;22007:15;;;;;;2621:42949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;17442:38;2621:42949;;-1:-1:-1;;;;;;2621:42949:161;;;;;;;;;17442:38;2621:42949;;;;;;;;;;;;;;;;;;;;;;;;;20913:273:169;2621:42949:161;;;;;17442:38;2621:42949;;;;;;;;;;;;;;;;21012:15:169;2621:42949:161;;;;;;;;;;;;;;;;;;;20913:273:169;;;;;;2621:42949:161;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;;20913:273:169;;;;;;;;;;:::i;:::-;2621:42949:161;20890:306:169;;4093:83:22;;;;2621:42949:161;;;;;;;;;;22716:7;2621:42949;;;22716:7;:::i;:::-;2621:42949;21992:13;;;22642:162;30234:13;2621:42949;;;;;30234:13;:::i;:::-;2621:42949;;;;;;-1:-1:-1;;;;;;30285:26:161;2621:42949;;;17442:38;2621:42949;30285:26;:::i;:::-;:29;;2621:42949;;;30285:34;2621:42949;30369:433;;;;;2621:42949;30417:16;2621:42949;;;;;;;;;;30417:16;:::i;:::-;2621:42949;;;:::i;:::-;30834:20;2621:42949;;;;;30834:20;:::i;:::-;-1:-1:-1;;;;;30881:14:161;2621:42949;;;;;30881:14;:::i;:::-;2621:42949;;30834:71;;;;;30865:7;30834:71;;;:::i;:::-;;30924:8;30920:513;;30369:433;30230:1562;22642:162;;30920:513;30975:52;30990:20;2621:42949;;;;;30990:20;:::i;:::-;31012:14;2621:42949;;;;;31012:14;:::i;:::-;30975:52;;:::i;:::-;31049:16;31045:125;;30920:513;31333:85;2621:42949;31349:14;2621:42949;;;;;31349:14;:::i;:::-;2621:42949;-1:-1:-1;;;;;;31391:26:161;2621:42949;;;17442:38;2621:42949;31391:26;:::i;:::-;2621:42949;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;31333:85;30920:513;;;31045:125;31094:57;31114:20;2621:42949;;;;;31114:20;:::i;:::-;31136:14;2621:42949;;;;;31136:14;:::i;:::-;2621:42949;;;-1:-1:-1;;;;;2621:42949:161;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;31094:57;31045:125;;30369:433;2621:42949;;30634:153;;2621:42949;30725:16;2621:42949;;;;;;;30725:16;:::i;:::-;30743:26;17442:38;2621:42949;;;;30743:26;:::i;:::-;2621:42949;;;30678:32;;;;;;2621:42949;30634:153;;;2621:42949;;30634:153;;;2621:42949;;;;;;;;;;:::i;:::-;;;;;;;;;;30634:153;20913:273:169;;30634:153:161;;;;;;:::i;:::-;30369:433;;30230:1562;31486:52;31501:20;2621:42949;;;;;31501:20;:::i;31486:52::-;31556:16;31552:117;;30230:1562;31688:93;31694:16;2621:42949;;;;;;;31694:16;:::i;:::-;31712:14;2621:42949;;;;;31712:14;:::i;:::-;2621:42949;-1:-1:-1;;;;;;31754:26:161;2621:42949;;;17442:38;2621:42949;31754:26;:::i;:::-;2621:42949;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;31688:93;;;22642:162;;31552:117;31597:57;31617:20;2621:42949;;;;;31617:20;:::i;:::-;31639:14;2621:42949;;;;;31639:14;:::i;:::-;2621:42949;;;-1:-1:-1;;;;;2621:42949:161;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;31597:57;31552:117;;2621:42949;;;;;;;;;-1:-1:-1;;;2621:42949:161;;;;;;;;;;;;;;;;22007:15;;;;2621:42949;;1083:131:25;;17810:23:161;2621:42949;;17810:23;2621:42949;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32565:33;;;;;;:::i;:::-;32608:18;;32642:13;;32637:628;32672:3;32657:13;;;;;;32805:17;2621:42949;;;;;;;;;;;;;33012:46;33027:17;2621:42949;;;;;32805:17;;;2621:42949;;32805:17;;;;;:::i;:::-;32824:11;;;;;;:::i;:::-;2621:42949;;21551:50:169;;;;2621:42949:161;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;21551:50:169;;;;;;:::i;:::-;2621:42949:161;21541:61:169;;4093:83:22;;;2621:42949:161;33027:17;;:::i;:::-;33046:11;;;:::i;33012:46::-;33046:11;;;33138;33108:42;33138:11;;:::i;:::-;2621:42949;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;33108:42;33072:183;2621:42949;32642:13;;;;;33072:183;33228:11;33194:46;33228:11;;:::i;:::-;2621:42949;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;33194:46;33072:183;;32657:13;1083:131:25;;;32657:13:161;;17980:18;2621:42949;;;17980:18;;;;2621:42949;17980:18;:::i;:::-;2621:42949;;;;;;;;;;;;;;;33908:33;;;:::i;:::-;33951:18;;;;34000:13;;;;;;1083:131:25;;;;;18155:21:161;;2621:42949;;18155:21;2621:42949;;;;18155:21;:::i;:::-;2621:42949;;;;;;;;;;;;;;;34929:33;;;:::i;:::-;34972:18;;;;35021:13;;;;;;1083:131:25;;;;;2621:42949:161;;;;18257:18;;;;;:::i;:::-;;;;18305:21;21551:50:169;2621:42949:161;;18305:21;;:::i;:::-;8798:67;;;:::i;:::-;42469:13;2621:42949;;;;;;;;;;;;;;811:66:53;;;2621:42949:161;;;;;;42469:13;2621:42949;;;;;;;;20824:21;-1:-1:-1;;;;;2621:42949:161;;21072:37;;2621:42949;;;;-1:-1:-1;;;;;2621:42949:161;21072:37;:::i;:::-;42693:8;42689:231;;18253:183;;;;2621:42949;;18537:24;2621:42949;;18537:24;2621:42949;18524:37;;;;;18520:110;;18253:183;2621:42949;;18839:18;18768:19;2621:42949;;;;18768:19;:::i;:::-;18839:18;;:::i;:::-;18871:21;21551:50:169;2621:42949:161;;18871:21;;:::i;:::-;18906:26;;2621:42949;;18906:26;;:::i;:::-;2621:42949;18946:38;17442;2621:42949;;17442:38;18946;:::i;:::-;2621:42949;;;22670:350:169;;;;2621:42949:161;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22670:350:169;;;;;;:::i;:::-;2621:42949:161;22647:383:169;;2621:42949:161;;;;;;18520:110;2621:42949;43280:23;2621:42949;;;;;;43280:23;18520:110;;;;42689:231;2621:42949;;;-1:-1:-1;;;;;2621:42949:161;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;42854:55;;;42689:231;;;;2621:42949;-1:-1:-1;;;2621:42949:161;;;;;18253:183;-1:-1:-1;;;;;18366:21:161;2621:42949;;21551:50:169;18366:21:161;;:::i;:::-;2621:42949;;;;18253:183;;;2621:42949;-1:-1:-1;;;2621:42949:161;;;;;35036:3;2621:42949;;35085:10;2621:42949;35085:10;;;;;:::i;2621:42949::-;;;;;;35075:21;4093:83:22;;;;2621:42949:161;35284:10;;;;;;;:::i;:::-;;;:::i;:::-;2621:42949;35006:13;;;2621:42949;-1:-1:-1;;;2621:42949:161;;;;;;;;34015:3;2621:42949;;34064:10;2621:42949;34064:10;;;;;:::i;2621:42949::-;;;;;;34054:21;4093:83:22;;;;2621:42949:161;34251:10;34241:21;34251:10;;;;;:::i;:::-;2621:42949;;;;;;;;;;;;;;:::i;:::-;34241:21;;;2621:42949;33985:13;;;2621:42949;-1:-1:-1;;;2621:42949:161;;;;;;;;;;;;;;;;;-1:-1:-1;;;2621:42949:161;;;;;;;;17438:113;17513:26;;;2621:42949;;17513:26;;:::i;:::-;;:::i;:::-;17438:113;;2621:42949;-1:-1:-1;;;2621:42949:161;;;;;;;;;;;;;;;;;;9882:69;;:::i;:::-;9363:6;2621:42949;;;;;;;21072:37;;20824:21;-1:-1:-1;;;;;2621:42949:161;;;;-1:-1:-1;;;;;2621:42949:161;21072:37;:::i;:::-;2621:42949;;;;;;-1:-1:-1;;;2621:42949:161;;;;;;-1:-1:-1;;;2621:42949:161;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;;;:::i;:::-;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;-1:-1:-1;;;;;14371:14:161;14378:6;14371:14;:::i;:::-;2621:42949;14371:79;;;;;2621:42949;;;14371:79;2621:42949;;;;;;;;;14371:79;;14393:10;2621:42949;14371:79;;2621:42949;14413:4;2621:42949;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:79;;;;2621:42949;14487:6;-1:-1:-1;;;;;;;;;;;14487:6:161;;2621:42949;14487:6;;:::i;:::-;2621:42949;;;;;14510:39;2621:42949;;14371:79;2621:42949;14371:79;;;;;2621:42949;-1:-1:-1;;;;;;;;;;;14371:79:161;;:::i;:::-;14487:6;2621:42949;14371:79;;;;;;;;2621:42949;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;9503:63;;:::i;:::-;16181:11;2621:42949;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;811:66:53;2621:42949:161;;-1:-1:-1;;;;;2621:42949:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;16181:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;16631:30:161;16627:124;;2621:42949;16627:124;2621:42949;-1:-1:-1;;;;;;;;;;;2621:42949:161;;;;;;16682:58;2621:42949;811:66:53;;;;2621:42949:161;811:66:53;2621:42949:161;;811:66:53;2621:42949:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;;3558:20;2621:42949;;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;4050:26;2621:42949;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;2621:42949;;;;;;12953:46;2621:42949;12988:10;12953:46;;2621:42949;;;;-1:-1:-1;;2621:42949:161;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;12480:64;2621:42949;;;;;;:::i;:::-;9882:69;;;;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;-1:-1:-1;;;;;12419:9:161;2621:42949;12457:6;;;;:::i;:::-;12480:64;2621:42949;;12515:10;;;;2621:42949;;;12480:64;;:::i;:::-;;;;2621:42949;;;;;;;-1:-1:-1;;2621:42949:161;;;;-1:-1:-1;;;;;;;;;;;2621:42949:161;;;:::i;:::-;9882:69;;:::i;:::-;8798:67;;:::i;:::-;10354:5;;;:::i;:::-;-1:-1:-1;;;;;2621:42949:161;;;;;;13429:39;2621:42949;;;;;;;-1:-1:-1;;2621:42949:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;;;3668:18;2621:42949;;;;;;;;;;;;;-1:-1:-1;;2621:42949:161;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;8593:5;2621:42949;8593:9;;;:38;;;2621:42949;;;;-1:-1:-1;;;;;19776:9:161;2621:42949;19814:6;;;;:::i;:::-;8593:5;2621:42949;20035:154;;;;2621:42949;20035:154;;;;;2621:42949;20035:154;2621:42949;;;;;;;;20221:70;2621:42949;8593:5;2621:42949;;;8593:5;2621:42949;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;20035:154;2621:42949;;;20250:10;;20221:70;;;;2621:42949;;;;;;8593:38;-1:-1:-1;8620:11:161;2621:42949;-1:-1:-1;;;;;2621:42949:161;8606:10;:25;8593:38;;2621:42949;;;;;;-1:-1:-1;;2621:42949:161;;;;3940:24;2621:42949;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2621:42949:161;;;;;;;;-1:-1:-1;;2621:42949:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;20913:273:169;;2621:42949:161;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;:::o;:::-;;;;-1:-1:-1;2621:42949:161;;;;;-1:-1:-1;2621:42949:161;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:42949:161;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10043:108::-;2621:42949;;-1:-1:-1;;;10102:24:161;;;2621:42949;10102:24;2621:42949;10110:6;-1:-1:-1;;;;;2621:42949:161;10102:24;;;;;;;-1:-1:-1;10102:24:161;;;10043:108;10101:25;2621:42949;;10043:108::o;2621:42949::-;;;;-1:-1:-1;2621:42949:161;10102:24;-1:-1:-1;2621:42949:161;10102:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2621:42949;;;;;;;;;8952:89;2621:42949;9010:6;2621:42949;;;;8952:89::o;2621:42949::-;;;;-1:-1:-1;2621:42949:161;;-1:-1:-1;2621:42949:161;10487:228;-1:-1:-1;;;;;2621:42949:161;10550:10;10546:163;;10487:228;:::o;10546:163::-;10598:6;;2621:42949;;10591:54;-1:-1:-1;;;;;10591:14:161;10598:6;10591:14;:::i;:::-;2621:42949;;-1:-1:-1;;;10591:54:161;;10619:10;10591:54;;;2621:42949;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;;;;;10559:1;;2621:42949;10591:54;;;;;;;10559:1;10591:54;;;10546:163;2621:42949;;;;10487:228::o;2621:42949::-;;;;10559:1;2621:42949;10591:54;10559:1;2621:42949;10591:54;;;;2621:42949;10591:54;2621:42949;10591:54;;;;;;;:::i;:::-;;;;7993:107;8058:5;2621:42949;8058:9;2621:42949;;7993:107::o;2621:42949::-;;;;-1:-1:-1;2621:42949:161;;-1:-1:-1;2621:42949:161;;-1:-1:-1;;;;;2621:42949:161;;;;;;-1:-1:-1;;2621:42949:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2621:42949:161;;;;:::o;:::-;;;:::o;10854:215::-;-1:-1:-1;;;;;2621:42949:161;10918:10;10914:149;;10854:215;:::o;10914:149::-;10927:1;10962:6;;;;;:29;;;;:::i;:::-;;2621:42949;;;10854:215::o;2621:42949::-;;;;10927:1;2621:42949;;10927:1;2621:42949;9658:102;9727:6;-1:-1:-1;;;;;2621:42949:161;9713:10;:20;2621:42949;;9658:102::o;2621:42949::-;;;;;;;;;43484:182;2621:42949;;-1:-1:-1;;;43586:33:161;;2621:42949;43586:33;;2621:42949;;43586:33;;2621:42949;;-1:-1:-1;;;;;2621:42949:161;43586:33;;;;;;;-1:-1:-1;43586:33:161;;;43484:182;-1:-1:-1;;;;;;2621:42949:161;;43484:182::o;43586:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2621:42949;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;43586:33;;;;;;-1:-1:-1;43586:33:161;;2621:42949;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2621:42949:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;43908:253;;-1:-1:-1;;;;;2621:42949:161;44005:10;;44001:133;;44143:11;;44150:4;43908:253;:::o;44001:133::-;2621:42949;44049:46;;;;;44071:5;44049:46;;;:::i;:::-;;44109:14;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;2621:42949:161:-;;-1:-1:-1;;;;;;2621:42949:161;;;;;;;:::o;23352:834::-;23675:13;;;;;:::i;:::-;23671:417;;23352:834;24103:76;;24124:20;;;;;:::i;:::-;24146:16;;;;;;:::i;:::-;24164:14;;;;;;;;:::i;:::-;2621:42949;24146:16;2621:42949;;;;;;;;;;;;24103:76;;:::i;:::-;;;;23352:834::o;23671:417::-;23722:20;;;-1:-1:-1;23722:20:161;;;;:::i;:::-;23762:16;;;;;;;:::i;:::-;2621:42949;;;23762:16;2621:42949;;;;;;;;;;;23722:57;;23753:7;23722:57;;;:::i;:::-;;23798:8;23794:284;;23671:417;;;23794:284;24002:20;23971:68;24002:20;;:::i;:::-;24024:14;;;;;:::i;:::-;23762:16;2621:42949;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;-1:-1:-1;;;;;2621:42949:161;;;;;;;;;23971:68;2621:42949;38374:3700;;38459:19;;38453:59;;38552:250;;;;;38818:17;38834:1;38818:17;;;:38;;;38374:3700;38816:41;38812:78;;2621:42949;;;;38834:1;2621:42949;;39031:38;;39025:78;;38834:1;39222:96;;;39889:31;39899:21;39889:31;;;:90;;;38374:3700;39889:147;;;38374:3700;39889:204;;;38374:3700;39889:265;;;38374:3700;39889:331;;;38374:3700;39889:373;;;38374:3700;39889:425;;;38374:3700;39889:465;;;38374:3700;39889:515;;;38374:3700;39889:562;;;38374:3700;39889:606;;;38374:3700;39889:677;;;38374:3700;39889:731;;;38374:3700;39889:782;;;38374:3700;39874:807;39870:844;;2621:42949;;;-1:-1:-1;;2621:42949:161;;;38834:1;40885:21;2621:42949;40885:21;:::i;:::-;40916:118;;;;;;41253:219;;;;;;;;;;38834:1;41486:17;;38834:1;;41519:83;;;;;;;;38374:3700::o;41482:586::-;41638:1;41622:17;;41638:1;;41655:91;;;;38374:3700::o;41618:450::-;41782:1;41766:17;;;;;;;;41762:306;41782:1;;;41799:99;;;;;;;38374:3700::o;41762:306::-;41934:1;41918:17;41914:154;;41762:306;;;;;;;38374:3700::o;41914:154::-;41253:219;;;41951:107;;41914:154;;;;;;;;39870:844;40697:7;;;;;:::o;39889:782::-;40636:35;40646:25;40636:35;;;39889:782;;:731;40582:38;40592:28;40582:38;;;39889:731;;:677;40511:55;40521:45;40511:55;;;39889:677;;:606;40467:28;40477:18;40467:28;;;39889:606;;:562;40420:31;40430:21;40420:31;;;39889:562;;:515;40370:34;40380:24;40370:34;;;39889:515;;:465;40330:24;40340:14;40330:24;;;39889:465;;:425;40278:36;40288:26;40278:36;;;39889:425;;:373;40236:26;40246:16;40236:26;;;39889:373;;:331;40170:50;-1:-1:-1;;;;;;;;;;;40170:50:161;;;39889:331;;:265;40109:45;40119:35;40109:45;;;39889:265;;:204;40052:41;40062:31;40052:41;;;39889:204;;:147;39995:41;40005:31;39995:41;;;39889:147;;:90;39936:43;39946:33;39936:43;;;39889:90;;39025:78;39086:7;;;;:::o;38818:38::-;38839:17;38855:1;38839:17;;;38818:38;;38453:59;38495:7;;:::o","linkReferences":{},"immutableReferences":{"77313":[{"start":568,"length":32},{"start":3662,"length":32},{"start":5300,"length":32},{"start":5482,"length":32},{"start":5779,"length":32},{"start":5845,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[],bytes[],bytes[]))":"f76207bb","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"GearEvent\",\"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\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"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\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"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\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"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\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"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\":\"executableBalanceTopUpWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"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\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"}],\"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\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"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\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"events\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"ethEvents\",\"type\":\"bytes[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transitionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mirror smart contract is responsible for storing the minimal state of programs on our platform and transitioning from one state to another by calling `performStateTransition(...)`. It's built on actor-model architecture, and in Ethereum, we implement this through \\\"request-response\\\" model. This means we have two types of events: - \\\"Requested\\\" events - when user calls one of the methods marked as \\\"Primary Gear logic\\\" we emit such an event, and all our nodes process it off-chain - \\\"Responded\\\" events - when we receive response from our nodes and transmit it back to Ethereum. All logic called within `performStateTransition(...)` and leading to methods marked as \\\"Private calls related to performStateTransition\\\" are such events. It's important not to confuse these two, as this is how we implement the actor model in Ethereum. Mirror economic model has two balances: - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`. This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`. - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain. It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform. You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users can use it for free. This is called the \\\"reverse-gas model\\\". Developer can also require the presence of `value` in the owned balance when calling methods in a WASM smart contract to protect their program from spam.\",\"errors\":{\"CallerNotRouter()\":[{\"details\":\"Thrown when the caller is not the `Router`.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the `Router` contract is paused and pause-protected Mirror call is attempted.\"}],\"EtherTransferToRouterFailed()\":[{\"details\":\"Thrown when the transfer of Ether to the `Router` fails.\"}],\"InitMessageNotCreated()\":[{\"details\":\"Thrown when the first (init) message is not created by the initializer.\"}],\"InitMessageNotCreatedAndCallerNotInitializer()\":[{\"details\":\"Thrown when the first (init) message is not created and the caller is not the initializer.\"}],\"ProgramExited()\":[{\"details\":\"Thrown when the program is exited and the call is attempted.\"}],\"ProgramNotExited()\":[{\"details\":\"Thrown when the program is not exited and the call is attempted.\"}],\"TransferLockedValueToInheritorExternalFailed()\":[{\"details\":\"Thrown when the transfer of locked value to the inheritor fails (in external call).\"}],\"WVaraTransferFailed()\":[{\"details\":\"Thrown when the transfer of Vara to the `Router` fails.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens.\",\"params\":{\"value\":\"The amount of tokens the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program.\"}},\"GearEvent(bytes)\":{\"details\":\"Emitted when the program emits a Gear event, which is a custom event defined by the program.\",\"params\":{\"payload\":\"The payload of the Gear event. NOTE: It's event for USERS: it informs about Gear event emitted by the program.\"}},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about new message sent from program.\"}},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about failed message call from program.\"}},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued.\",\"params\":{\"callReply\":\"Indicates whether the message is sent with callReply flag. NOTE: It's event for NODES: it requires to insert message in the program's queue.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"source\":\"Message source address.\",\"value\":\"Message value.\"}},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether.\",\"params\":{\"value\":\"The amount of Ether the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"}},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message.\",\"params\":{\"payload\":\"Reply message payload.\",\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about new reply sent from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts.\",\"params\":{\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about failed reply call from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued.\",\"params\":{\"payload\":\"The payload of the reply.\",\"repliedTo\":\"The ID of the message being replied to.\",\"source\":\"The address of the reply sender.\",\"value\":\"The value of the reply. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"}},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call\",\"params\":{\"destination\":\"The address of the destination.\",\"value\":\"The amount of value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"}},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed.\",\"params\":{\"stateHash\":\"The new state hash of the program. NOTE: It's event for USERS: it informs about state changes.\"}},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit.\",\"params\":{\"inheritor\":\"The address of the inheritor.\",\"value\":\"The amount of locked value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"}},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value that failed to claim. NOTE: It's event for USERS: it informs about failed value claim.\"}},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value claimed. 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.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"source\":\"The address of the claim sender. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}}},\"kind\":\"dev\",\"methods\":{\"claimValue(bytes32)\":{\"details\":\"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.\",\"params\":{\"_claimedId\":\"Message ID of the value to be claimed.\"}},\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable `Router` address.\",\"params\":{\"_router\":\"The address of the `Router` contract.\"}},\"executableBalanceTopUp(uint128)\":{\"details\":\"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\",\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"initialize(address,address,bool,uint128)\":{\"details\":\"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.\",\"params\":{\"_abiInterface\":\"The address of the ABI interface. This address will be displayed as \\\"proxy implementation\\\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.\",\"_initialExecutableBalance\":\"The initial executable balance to be transferred to the program.\",\"_initializer\":\"The address of the initializer. Only this address will be able to send the first (init) message.\",\"_isSmall\":\"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[],bytes[],bytes[]))\":{\"details\":\"Performs state transition for the `Mirror` contract.\",\"params\":{\"_transition\":\"The state transition data.\"},\"returns\":{\"transitionHash\":\"The hash of the performed state transition.\"}},\"sendMessage(bytes,bool)\":{\"details\":\"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.\",\"params\":{\"_callReply\":\"Whether to set `call` flag in the reply message.\",\"_payload\":\"The payload of the message.\"},\"returns\":{\"messageId\":\"Message ID of the sent message.\"}},\"sendReply(bytes32,bytes)\":{\"details\":\"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.\",\"params\":{\"_payload\":\"The payload of the reply message.\",\"_repliedTo\":\"Message ID to which the reply is sent.\"}},\"transferLockedValueToInheritor()\":{\"details\":\"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events and re-remit then as Solidity events: - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit. Inheritor specifies the address to which all available program value should be transferred.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"Flag that indicates what type this `Mirror` smart contract is: - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation (which is usually more expensive in terms of gas to create). This is generally the more popular way and is the one you will most likely use if you are writing programs using the Sails framework. This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`. User writes WASM smart contract on Sails framework called \\\"\\u0421ounter\\\": - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)` and waits for the code to be validated. User also generates \\\"Solidity ABI Interface\\\" to allow incrementing counter or calling other methods within WASM smart contract. Next, we assume user uploads `CounterAbi` smart contract to Ethereum: ```solidity interface ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId); function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId); // ... other methods } contract CounterAbi is ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {} function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {} } ``` User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`, where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \\\"proxy implementation\\\", and Etherscan will think that `Mirror` has `CounterAbi` methods. User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract: `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror` to create new message and pass the Solidity call to the WASM smart contract on the Sails framework. WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`. - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation (which is usually less expensive in terms of gas to create). This case is suitable if the user develops WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the `Router` contract, which is the sole authority to modify the state of this contract and transfer funds from it. forge-lint: disable-next-item(screaming-snake-case-immutable)\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343\",\"dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Mirror.sol\":{\"keccak256\":\"0xd3acb70a86472f7cf5b6fa3e340d34a11e1132477ab00792cc11121fa52b3b31\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8ce6fa8b5fe90fa94b695726754baf3f52519a4537b93354f7bb6357a2fd2445\",\"dweb:/ipfs/QmeY7QzJb8wgEeuhYvrMiC6yz9ppMJDm9K1rSANNbkqqHX\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false}],"type":"event","name":"GearEvent","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":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","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},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","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":"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":"ReplyCallFailed","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":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","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":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"},{"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":"executableBalanceTopUpWithPermit"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"}],"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":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"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":"bool","name":"call","type":"bool"}]},{"internalType":"bytes[]","name":"events","type":"bytes[]"},{"internalType":"bytes[]","name":"ethEvents","type":"bytes[]"}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"transitionHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","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":{"claimValue(bytes32)":{"details":"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.","params":{"_claimedId":"Message ID of the value to be claimed."}},"constructor":{"details":"Minimal constructor that only sets the immutable `Router` address.","params":{"_router":"The address of the `Router` contract."}},"executableBalanceTopUp(uint128)":{"details":"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":{"details":"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter.","_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"initialize(address,address,bool,uint128)":{"details":"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.","params":{"_abiInterface":"The address of the ABI interface. This address will be displayed as \"proxy implementation\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.","_initialExecutableBalance":"The initial executable balance to be transferred to the program.","_initializer":"The address of the initializer. Only this address will be able to send the first (init) message.","_isSmall":"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[],bytes[],bytes[]))":{"details":"Performs state transition for the `Mirror` contract.","params":{"_transition":"The state transition data."},"returns":{"transitionHash":"The hash of the performed state transition."}},"sendMessage(bytes,bool)":{"details":"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.","params":{"_callReply":"Whether to set `call` flag in the reply message.","_payload":"The payload of the message."},"returns":{"messageId":"Message ID of the sent message."}},"sendReply(bytes32,bytes)":{"details":"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.","params":{"_payload":"The payload of the reply message.","_repliedTo":"Message ID to which the reply is sent."}},"transferLockedValueToInheritor()":{"details":"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f","urls":["bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343","dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0xd3acb70a86472f7cf5b6fa3e340d34a11e1132477ab00792cc11121fa52b3b31","urls":["bzz-raw://8ce6fa8b5fe90fa94b695726754baf3f52519a4537b93354f7bb6357a2fd2445","dweb:/ipfs/QmeY7QzJb8wgEeuhYvrMiC6yz9ppMJDm9K1rSANNbkqqHX"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77316,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77319,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77322,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77325,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77328,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77331,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":78878,"exportedSymbols":{"ERC1967Utils":[45701],"Gear":[84267],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74400],"IRouter":[74995],"IWrappedVara":[75011],"Memory":[41257],"Mirror":[78877],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:45497:161","nodes":[{"id":77285,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77287,"nodeType":"ImportDirective","src":"100:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77286,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77289,"nodeType":"ImportDirective","src":"185:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77288,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77291,"nodeType":"ImportDirective","src":"260:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77290,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77293,"nodeType":"ImportDirective","src":"321:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77292,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77295,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77294,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77297,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":74401,"symbolAliases":[{"foreign":{"id":77296,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77299,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":74996,"symbolAliases":[{"foreign":{"id":77298,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74995,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77301,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":75012,"symbolAliases":[{"foreign":{"id":77300,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77303,"nodeType":"ImportDirective","src":"575:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78878,"sourceUnit":84268,"symbolAliases":[{"foreign":{"id":77302,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"583:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78877,"nodeType":"ContractDefinition","src":"2621:42949:161","nodes":[{"id":77310,"nodeType":"VariableDeclaration","src":"2900:85:161","nodes":[],"constant":true,"documentation":{"id":77307,"nodeType":"StructuredDocumentation","src":"2654:241:161","text":" @dev Special address to which Sails contract sends messages so that Mirror can decode events\n and re-remit then as Solidity events:\n - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"2926:14:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77308,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":77313,"nodeType":"VariableDeclaration","src":"3228:31:161","nodes":[],"baseFunctions":[74300],"constant":false,"documentation":{"id":77311,"nodeType":"StructuredDocumentation","src":"2992:231:161","text":" @dev Address of the `Router` contract, which is the sole authority\n to modify the state of this contract and transfer funds from it.\n forge-lint: disable-next-item(screaming-snake-case-immutable)"},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"3253:6:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77312,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77316,"nodeType":"VariableDeclaration","src":"3324:24:161","nodes":[],"baseFunctions":[74306],"constant":false,"documentation":{"id":77314,"nodeType":"StructuredDocumentation","src":"3266:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3339:9:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77319,"nodeType":"VariableDeclaration","src":"3558:20:161","nodes":[],"baseFunctions":[74312],"constant":false,"documentation":{"id":77317,"nodeType":"StructuredDocumentation","src":"3355:198:161","text":" @dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"3573:5:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77318,"name":"uint256","nodeType":"ElementaryTypeName","src":"3558:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77322,"nodeType":"VariableDeclaration","src":"3668:18:161","nodes":[],"baseFunctions":[74318],"constant":false,"documentation":{"id":77320,"nodeType":"StructuredDocumentation","src":"3585:78:161","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3680:6:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77321,"name":"bool","nodeType":"ElementaryTypeName","src":"3668:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77325,"nodeType":"VariableDeclaration","src":"3940:24:161","nodes":[],"baseFunctions":[74324],"constant":false,"documentation":{"id":77323,"nodeType":"StructuredDocumentation","src":"3741:194:161","text":" @dev The address of the inheritor, which is set by the program on exit.\n Inheritor specifies the address to which all available program value should be transferred."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"3955:9:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77324,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77328,"nodeType":"VariableDeclaration","src":"4050:26:161","nodes":[],"baseFunctions":[74330],"constant":false,"documentation":{"id":77326,"nodeType":"StructuredDocumentation","src":"3971:74:161","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4065:11:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77327,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77331,"nodeType":"VariableDeclaration","src":"7411:12:161","nodes":[],"constant":false,"documentation":{"id":77329,"nodeType":"StructuredDocumentation","src":"4083:3323:161","text":" @dev Flag that indicates what type this `Mirror` smart contract is:\n - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation\n (which is usually more expensive in terms of gas to create). This is generally the\n more popular way and is the one you will most likely use if you are writing programs using the Sails framework.\n This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and\n new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`.\n User writes WASM smart contract on Sails framework called \"Сounter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)`\n and waits for the code to be validated.\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`,\n where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \"proxy implementation\",\n and Etherscan will think that `Mirror` has `CounterAbi` methods.\n User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract:\n `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call\n and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror`\n to create new message and pass the Solidity call to the WASM smart contract on the Sails framework.\n WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`.\n - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation\n (which is usually less expensive in terms of gas to create). This case is suitable if the user develops\n WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors\n (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`."},"mutability":"mutable","name":"isSmall","nameLocation":"7416:7:161","scope":78877,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77330,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77342,"nodeType":"FunctionDefinition","src":"7585:62:161","nodes":[],"body":{"id":77341,"nodeType":"Block","src":"7614:33:161","nodes":[],"statements":[{"expression":{"id":77339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77337,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"7624:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77338,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77334,"src":"7633:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7624:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77340,"nodeType":"ExpressionStatement","src":"7624:16:161"}]},"documentation":{"id":77332,"nodeType":"StructuredDocumentation","src":"7430:150:161","text":" @dev Minimal constructor that only sets the immutable `Router` address.\n @param _router The address of the `Router` contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77334,"mutability":"mutable","name":"_router","nameLocation":"7605:7:161","nodeType":"VariableDeclaration","scope":77342,"src":"7597:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77333,"name":"address","nodeType":"ElementaryTypeName","src":"7597:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7596:17:161"},"returnParameters":{"id":77336,"nodeType":"ParameterList","parameters":[],"src":"7614:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77350,"nodeType":"ModifierDefinition","src":"7804:83:161","nodes":[],"body":{"id":77349,"nodeType":"Block","src":"7836:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77345,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77363,"src":"7846:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77347,"nodeType":"ExpressionStatement","src":"7846:23:161"},{"id":77348,"nodeType":"PlaceholderStatement","src":"7879:1:161"}]},"documentation":{"id":77343,"nodeType":"StructuredDocumentation","src":"7676:123:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7813:20:161","parameters":{"id":77344,"nodeType":"ParameterList","parameters":[],"src":"7833:2:161"},"virtual":false,"visibility":"internal"},{"id":77363,"nodeType":"FunctionDefinition","src":"7993:107:161","nodes":[],"body":{"id":77362,"nodeType":"Block","src":"8040:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77355,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"8058:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8066:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8058:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77358,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74258,"src":"8069:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77354,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8050:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77361,"nodeType":"ExpressionStatement","src":"8050:43:161"}]},"documentation":{"id":77351,"nodeType":"StructuredDocumentation","src":"7893:95:161","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8002:21:161","parameters":{"id":77352,"nodeType":"ParameterList","parameters":[],"src":"8023:2:161"},"returnParameters":{"id":77353,"nodeType":"ParameterList","parameters":[],"src":"8040:0:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77371,"nodeType":"ModifierDefinition","src":"8267:109:161","nodes":[],"body":{"id":77370,"nodeType":"Block","src":"8312:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77366,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77389,"src":"8322:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8322:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77368,"nodeType":"ExpressionStatement","src":"8322:36:161"},{"id":77369,"nodeType":"PlaceholderStatement","src":"8368:1:161"}]},"documentation":{"id":77364,"nodeType":"StructuredDocumentation","src":"8106:156:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"8276:33:161","parameters":{"id":77365,"nodeType":"ParameterList","parameters":[],"src":"8309:2:161"},"virtual":false,"visibility":"internal"},{"id":77389,"nodeType":"FunctionDefinition","src":"8515:172:161","nodes":[],"body":{"id":77388,"nodeType":"Block","src":"8575:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77376,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"8593:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8601:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8593:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77379,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8606:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8610:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8606:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77381,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77328,"src":"8620:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8606:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8593:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77384,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74261,"src":"8633:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77375,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8585:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77387,"nodeType":"ExpressionStatement","src":"8585:95:161"}]},"documentation":{"id":77372,"nodeType":"StructuredDocumentation","src":"8382:128:161","text":" @dev Internal function to check if the init message has been created before or the caller is the initializer."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"8524:34:161","parameters":{"id":77373,"nodeType":"ParameterList","parameters":[],"src":"8558:2:161"},"returnParameters":{"id":77374,"nodeType":"ParameterList","parameters":[],"src":"8575:0:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77397,"nodeType":"ModifierDefinition","src":"8798:67:161","nodes":[],"body":{"id":77396,"nodeType":"Block","src":"8822:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77392,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77409,"src":"8832:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8832:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77394,"nodeType":"ExpressionStatement","src":"8832:15:161"},{"id":77395,"nodeType":"PlaceholderStatement","src":"8857:1:161"}]},"documentation":{"id":77390,"nodeType":"StructuredDocumentation","src":"8693:100:161","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8807:12:161","parameters":{"id":77391,"nodeType":"ParameterList","parameters":[],"src":"8819:2:161"},"virtual":false,"visibility":"internal"},{"id":77409,"nodeType":"FunctionDefinition","src":"8952:89:161","nodes":[],"body":{"id":77408,"nodeType":"Block","src":"8991:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9009:7:161","subExpression":{"id":77402,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77322,"src":"9010:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77404,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74264,"src":"9018:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9001:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9001:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77407,"nodeType":"ExpressionStatement","src":"9001:33:161"}]},"documentation":{"id":77398,"nodeType":"StructuredDocumentation","src":"8871:76:161","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"8961:13:161","parameters":{"id":77399,"nodeType":"ParameterList","parameters":[],"src":"8974:2:161"},"returnParameters":{"id":77400,"nodeType":"ParameterList","parameters":[],"src":"8991:0:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77417,"nodeType":"ModifierDefinition","src":"9152:67:161","nodes":[],"body":{"id":77416,"nodeType":"Block","src":"9176:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77412,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77428,"src":"9186:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77414,"nodeType":"ExpressionStatement","src":"9186:15:161"},{"id":77415,"nodeType":"PlaceholderStatement","src":"9211:1:161"}]},"documentation":{"id":77410,"nodeType":"StructuredDocumentation","src":"9047:100:161","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9161:12:161","parameters":{"id":77411,"nodeType":"ParameterList","parameters":[],"src":"9173:2:161"},"virtual":false,"visibility":"internal"},{"id":77428,"nodeType":"FunctionDefinition","src":"9306:91:161","nodes":[],"body":{"id":77427,"nodeType":"Block","src":"9345:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77422,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77322,"src":"9363:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77423,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74267,"src":"9371:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77421,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9355:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9355:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77426,"nodeType":"ExpressionStatement","src":"9355:35:161"}]},"documentation":{"id":77418,"nodeType":"StructuredDocumentation","src":"9225:76:161","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9315:13:161","parameters":{"id":77419,"nodeType":"ParameterList","parameters":[],"src":"9328:2:161"},"returnParameters":{"id":77420,"nodeType":"ParameterList","parameters":[],"src":"9345:0:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77436,"nodeType":"ModifierDefinition","src":"9503:63:161","nodes":[],"body":{"id":77435,"nodeType":"Block","src":"9525:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77431,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77450,"src":"9535:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77433,"nodeType":"ExpressionStatement","src":"9535:13:161"},{"id":77434,"nodeType":"PlaceholderStatement","src":"9558:1:161"}]},"documentation":{"id":77429,"nodeType":"StructuredDocumentation","src":"9403:95:161","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9512:10:161","parameters":{"id":77430,"nodeType":"ParameterList","parameters":[],"src":"9522:2:161"},"virtual":false,"visibility":"internal"},{"id":77450,"nodeType":"FunctionDefinition","src":"9658:102:161","nodes":[],"body":{"id":77449,"nodeType":"Block","src":"9695:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77441,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9713:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9717:6:161","memberName":"sender","nodeType":"MemberAccess","src":"9713:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77443,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"9727:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9713:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77445,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74270,"src":"9735:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9735:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77440,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9705:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9705:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77448,"nodeType":"ExpressionStatement","src":"9705:48:161"}]},"documentation":{"id":77437,"nodeType":"StructuredDocumentation","src":"9572:81:161","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9667:11:161","parameters":{"id":77438,"nodeType":"ParameterList","parameters":[],"src":"9678:2:161"},"returnParameters":{"id":77439,"nodeType":"ParameterList","parameters":[],"src":"9695:0:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77458,"nodeType":"ModifierDefinition","src":"9882:69:161","nodes":[],"body":{"id":77457,"nodeType":"Block","src":"9907:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77453,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77474,"src":"9917:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77455,"nodeType":"ExpressionStatement","src":"9917:16:161"},{"id":77456,"nodeType":"PlaceholderStatement","src":"9943:1:161"}]},"documentation":{"id":77451,"nodeType":"StructuredDocumentation","src":"9766:111:161","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9891:13:161","parameters":{"id":77452,"nodeType":"ParameterList","parameters":[],"src":"9904:2:161"},"virtual":false,"visibility":"internal"},{"id":77474,"nodeType":"FunctionDefinition","src":"10043:108:161","nodes":[],"body":{"id":77473,"nodeType":"Block","src":"10083:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10101:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77464,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"10110:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77463,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74995,"src":"10102:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74995_$","typeString":"type(contract IRouter)"}},"id":77465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74995","typeString":"contract IRouter"}},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74758,"src":"10102:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77469,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74273,"src":"10128:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10128:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77462,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10093:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10093:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77472,"nodeType":"ExpressionStatement","src":"10093:51:161"}]},"documentation":{"id":77459,"nodeType":"StructuredDocumentation","src":"9957:81:161","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10052:14:161","parameters":{"id":77460,"nodeType":"ParameterList","parameters":[],"src":"10066:2:161"},"returnParameters":{"id":77461,"nodeType":"ParameterList","parameters":[],"src":"10083:0:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77485,"nodeType":"ModifierDefinition","src":"10289:89:161","nodes":[],"body":{"id":77484,"nodeType":"Block","src":"10328:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77480,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77477,"src":"10354:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77479,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77515,"src":"10338:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77482,"nodeType":"ExpressionStatement","src":"10338:22:161"},{"id":77483,"nodeType":"PlaceholderStatement","src":"10370:1:161"}]},"documentation":{"id":77475,"nodeType":"StructuredDocumentation","src":"10157:127:161","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10298:14:161","parameters":{"id":77478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77477,"mutability":"mutable","name":"value","nameLocation":"10321:5:161","nodeType":"VariableDeclaration","scope":77485,"src":"10313:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77476,"name":"uint128","nodeType":"ElementaryTypeName","src":"10313:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10312:15:161"},"virtual":false,"visibility":"internal"},{"id":77515,"nodeType":"FunctionDefinition","src":"10487:228:161","nodes":[],"body":{"id":77514,"nodeType":"Block","src":"10536:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77488,"src":"10550:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10559:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10550:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77513,"nodeType":"IfStatement","src":"10546:163:161","trueBody":{"id":77512,"nodeType":"Block","src":"10562:147:161","statements":[{"assignments":[77495],"declarations":[{"constant":false,"id":77495,"mutability":"mutable","name":"success","nameLocation":"10581:7:161","nodeType":"VariableDeclaration","scope":77512,"src":"10576:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77494,"name":"bool","nodeType":"ElementaryTypeName","src":"10576:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77505,"initialValue":{"arguments":[{"expression":{"id":77500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10619:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10623:6:161","memberName":"sender","nodeType":"MemberAccess","src":"10619:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77502,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"10631:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77503,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77488,"src":"10639:5:161","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":77497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"10598:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77496,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78785,"src":"10591:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75011_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10606:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"10591:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":77504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10576:69:161"},{"expression":{"arguments":[{"id":77507,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77495,"src":"10667:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77508,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74276,"src":"10676:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10676:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10659:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77511,"nodeType":"ExpressionStatement","src":"10659:39:161"}]}}]},"documentation":{"id":77486,"nodeType":"StructuredDocumentation","src":"10384:98:161","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10496:15:161","parameters":{"id":77489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77488,"mutability":"mutable","name":"value","nameLocation":"10520:5:161","nodeType":"VariableDeclaration","scope":77515,"src":"10512:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77487,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10511:15:161"},"returnParameters":{"id":77490,"nodeType":"ParameterList","parameters":[],"src":"10536:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77542,"nodeType":"FunctionDefinition","src":"10854:215:161","nodes":[],"body":{"id":77541,"nodeType":"Block","src":"10904:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77518,"src":"10918:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10918:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77540,"nodeType":"IfStatement","src":"10914:149:161","trueBody":{"id":77539,"nodeType":"Block","src":"10930:133:161","statements":[{"assignments":[77525,null],"declarations":[{"constant":false,"id":77525,"mutability":"mutable","name":"success","nameLocation":"10950:7:161","nodeType":"VariableDeclaration","scope":77539,"src":"10945:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77524,"name":"bool","nodeType":"ElementaryTypeName","src":"10945:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77532,"initialValue":{"arguments":[{"hexValue":"","id":77530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77526,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"10962:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10969:4:161","memberName":"call","nodeType":"MemberAccess","src":"10962:11:161","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":77529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77528,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77518,"src":"10981:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"10962:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10944:47:161"},{"expression":{"arguments":[{"id":77534,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77525,"src":"11013:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77535,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74279,"src":"11022:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11022:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11005:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11005:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77538,"nodeType":"ExpressionStatement","src":"11005:47:161"}]}}]},"documentation":{"id":77516,"nodeType":"StructuredDocumentation","src":"10721:128:161","text":" @dev Non-zero Ether value must be transferred from source to `Router` in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"10863:16:161","parameters":{"id":77519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77518,"mutability":"mutable","name":"value","nameLocation":"10888:5:161","nodeType":"VariableDeclaration","scope":77542,"src":"10880:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77517,"name":"uint128","nodeType":"ElementaryTypeName","src":"10880:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10879:15:161"},"returnParameters":{"id":77520,"nodeType":"ParameterList","parameters":[],"src":"10904:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77560,"nodeType":"FunctionDefinition","src":"11454:216:161","nodes":[],"body":{"id":77559,"nodeType":"Block","src":"11612:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77555,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77545,"src":"11642:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77556,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77547,"src":"11652:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77554,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77945,"src":"11629:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11629:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77553,"id":77558,"nodeType":"Return","src":"11622:41:161"}]},"baseFunctions":[74340],"documentation":{"id":77543,"nodeType":"StructuredDocumentation","src":"11124:325:161","text":" @dev Sends message to the program.\n As result of execution, the `MessageQueueingRequested` event will be emitted.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":77550,"kind":"modifierInvocation","modifierName":{"id":77549,"name":"whenNotPaused","nameLocations":["11558:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"11558:13:161"},"nodeType":"ModifierInvocation","src":"11558:13:161"}],"name":"sendMessage","nameLocation":"11463:11:161","parameters":{"id":77548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77545,"mutability":"mutable","name":"_payload","nameLocation":"11490:8:161","nodeType":"VariableDeclaration","scope":77560,"src":"11475:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77544,"name":"bytes","nodeType":"ElementaryTypeName","src":"11475:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77547,"mutability":"mutable","name":"_callReply","nameLocation":"11505:10:161","nodeType":"VariableDeclaration","scope":77560,"src":"11500:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77546,"name":"bool","nodeType":"ElementaryTypeName","src":"11500:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11474:42:161"},"returnParameters":{"id":77553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77552,"mutability":"mutable","name":"messageId","nameLocation":"11597:9:161","nodeType":"VariableDeclaration","scope":77560,"src":"11589:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11589:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11588:19:161"},"scope":78877,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77595,"nodeType":"FunctionDefinition","src":"12211:340:161","nodes":[],"body":{"id":77594,"nodeType":"Block","src":"12384:167:161","nodes":[],"statements":[{"assignments":[77575],"declarations":[{"constant":false,"id":77575,"mutability":"mutable","name":"_value","nameLocation":"12402:6:161","nodeType":"VariableDeclaration","scope":77594,"src":"12394:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77574,"name":"uint128","nodeType":"ElementaryTypeName","src":"12394:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77581,"initialValue":{"arguments":[{"expression":{"id":77578,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12419:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12423:5:161","memberName":"value","nodeType":"MemberAccess","src":"12419:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12411:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77576,"name":"uint128","nodeType":"ElementaryTypeName","src":"12411:7:161","typeDescriptions":{}}},"id":77580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12411:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12394:35:161"},{"expression":{"arguments":[{"id":77583,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77575,"src":"12457:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77582,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77542,"src":"12440:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12440:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77585,"nodeType":"ExpressionStatement","src":"12440:24:161"},{"eventCall":{"arguments":[{"id":77587,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77563,"src":"12503:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12515:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12519:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12515:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77590,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77565,"src":"12527:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77591,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77575,"src":"12537:6:161","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":77586,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"12480:22:161","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":77592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77593,"nodeType":"EmitStatement","src":"12475:69:161"}]},"baseFunctions":[74348],"documentation":{"id":77561,"nodeType":"StructuredDocumentation","src":"11676:530:161","text":" @dev Sends reply message to the program.\n Note that this function does not return `bytes32 messageId` of the sent message,\n if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)`\n or use SDK in `ethexe/sdk/src/mirror.rs`.\n As result of execution, the `ReplyQueueingRequested` event will be emitted.\n @param _repliedTo Message ID to which the reply is sent.\n @param _payload The payload of the reply message."},"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":77568,"kind":"modifierInvocation","modifierName":{"id":77567,"name":"whenNotPaused","nameLocations":["12316:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"12316:13:161"},"nodeType":"ModifierInvocation","src":"12316:13:161"},{"id":77570,"kind":"modifierInvocation","modifierName":{"id":77569,"name":"onlyIfActive","nameLocations":["12338:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77397,"src":"12338:12:161"},"nodeType":"ModifierInvocation","src":"12338:12:161"},{"id":77572,"kind":"modifierInvocation","modifierName":{"id":77571,"name":"onlyAfterInitMessage","nameLocations":["12359:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77350,"src":"12359:20:161"},"nodeType":"ModifierInvocation","src":"12359:20:161"}],"name":"sendReply","nameLocation":"12220:9:161","parameters":{"id":77566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77563,"mutability":"mutable","name":"_repliedTo","nameLocation":"12238:10:161","nodeType":"VariableDeclaration","scope":77595,"src":"12230:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12230:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77565,"mutability":"mutable","name":"_payload","nameLocation":"12265:8:161","nodeType":"VariableDeclaration","scope":77595,"src":"12250:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77564,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12229:45:161"},"returnParameters":{"id":77573,"nodeType":"ParameterList","parameters":[],"src":"12384:0:161"},"scope":78877,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77614,"nodeType":"FunctionDefinition","src":"12841:165:161","nodes":[],"body":{"id":77613,"nodeType":"Block","src":"12938:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77608,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77598,"src":"12976:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77609,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12988:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12992:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12988:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77607,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"12953:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12953:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77612,"nodeType":"EmitStatement","src":"12948:51:161"}]},"baseFunctions":[74354],"documentation":{"id":77596,"nodeType":"StructuredDocumentation","src":"12624:212:161","text":" @dev Claim value from message in mailbox.\n As result of execution, the `ValueClaimingRequested` event will be emitted.\n @param _claimedId Message ID of the value to be claimed."},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":77601,"kind":"modifierInvocation","modifierName":{"id":77600,"name":"whenNotPaused","nameLocations":["12890:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"12890:13:161"},"nodeType":"ModifierInvocation","src":"12890:13:161"},{"id":77603,"kind":"modifierInvocation","modifierName":{"id":77602,"name":"onlyIfActive","nameLocations":["12904:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77397,"src":"12904:12:161"},"nodeType":"ModifierInvocation","src":"12904:12:161"},{"id":77605,"kind":"modifierInvocation","modifierName":{"id":77604,"name":"onlyAfterInitMessage","nameLocations":["12917:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77350,"src":"12917:20:161"},"nodeType":"ModifierInvocation","src":"12917:20:161"}],"name":"claimValue","nameLocation":"12850:10:161","parameters":{"id":77599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77598,"mutability":"mutable","name":"_claimedId","nameLocation":"12869:10:161","nodeType":"VariableDeclaration","scope":77614,"src":"12861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12860:20:161"},"returnParameters":{"id":77606,"nodeType":"ParameterList","parameters":[],"src":"12938:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77632,"nodeType":"FunctionDefinition","src":"13307:168:161","nodes":[],"body":{"id":77631,"nodeType":"Block","src":"13414:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77628,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77617,"src":"13461:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77627,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"13429:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13429:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77630,"nodeType":"EmitStatement","src":"13424:44:161"}]},"baseFunctions":[74360],"documentation":{"id":77615,"nodeType":"StructuredDocumentation","src":"13012:290:161","text":" @dev Tops up the executable balance of the program.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":77620,"kind":"modifierInvocation","modifierName":{"id":77619,"name":"whenNotPaused","nameLocations":["13364:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"13364:13:161"},"nodeType":"ModifierInvocation","src":"13364:13:161"},{"id":77622,"kind":"modifierInvocation","modifierName":{"id":77621,"name":"onlyIfActive","nameLocations":["13378:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77397,"src":"13378:12:161"},"nodeType":"ModifierInvocation","src":"13378:12:161"},{"arguments":[{"id":77624,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77617,"src":"13406:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77625,"kind":"modifierInvocation","modifierName":{"id":77623,"name":"retrievingVara","nameLocations":["13391:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77485,"src":"13391:14:161"},"nodeType":"ModifierInvocation","src":"13391:22:161"}],"name":"executableBalanceTopUp","nameLocation":"13316:22:161","parameters":{"id":77618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77617,"mutability":"mutable","name":"_value","nameLocation":"13347:6:161","nodeType":"VariableDeclaration","scope":77632,"src":"13339:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77616,"name":"uint128","nodeType":"ElementaryTypeName","src":"13339:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13338:16:161"},"returnParameters":{"id":77626,"nodeType":"ParameterList","parameters":[],"src":"13414:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77680,"nodeType":"FunctionDefinition","src":"14182:374:161","nodes":[],"body":{"id":77679,"nodeType":"Block","src":"14357:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77666,"nodeType":"Block","src":"14451:2:161","statements":[]},"errorName":"","id":77667,"nodeType":"TryCatchClause","src":"14451:2:161"},{"block":{"id":77668,"nodeType":"Block","src":"14460:2:161","statements":[]},"errorName":"","id":77669,"nodeType":"TryCatchClause","src":"14454:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77654,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14393:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14397:6:161","memberName":"sender","nodeType":"MemberAccess","src":"14393:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77658,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14413:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78877","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78877","typeString":"contract Mirror"}],"id":77657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14405:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77656,"name":"address","nodeType":"ElementaryTypeName","src":"14405:7:161","typeDescriptions":{}}},"id":77659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77660,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"14420:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77661,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77637,"src":"14428:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77662,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77639,"src":"14439:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77663,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77641,"src":"14443:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77664,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77643,"src":"14447:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":77651,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77313,"src":"14378:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77650,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78785,"src":"14371:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75011_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":77653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14386:6:161","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"14371:21:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":77665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:79:161","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77670,"nodeType":"TryStatement","src":"14367:95:161"},{"expression":{"arguments":[{"id":77672,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"14487:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77671,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77515,"src":"14471:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14471:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77674,"nodeType":"ExpressionStatement","src":"14471:23:161"},{"eventCall":{"arguments":[{"id":77676,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"14542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77675,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14510:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77678,"nodeType":"EmitStatement","src":"14505:44:161"}]},"baseFunctions":[74374],"documentation":{"id":77633,"nodeType":"StructuredDocumentation","src":"13481:696:161","text":" @dev Tops up the executable balance of the program.\n Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router`\n using permit signature, which can save one transaction for user.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"c6049692","implemented":true,"kind":"function","modifiers":[{"id":77646,"kind":"modifierInvocation","modifierName":{"id":77645,"name":"whenNotPaused","nameLocations":["14318:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"14318:13:161"},"nodeType":"ModifierInvocation","src":"14318:13:161"},{"id":77648,"kind":"modifierInvocation","modifierName":{"id":77647,"name":"onlyIfActive","nameLocations":["14340:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77397,"src":"14340:12:161"},"nodeType":"ModifierInvocation","src":"14340:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14191:32:161","parameters":{"id":77644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77635,"mutability":"mutable","name":"_value","nameLocation":"14232:6:161","nodeType":"VariableDeclaration","scope":77680,"src":"14224:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77634,"name":"uint128","nodeType":"ElementaryTypeName","src":"14224:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77637,"mutability":"mutable","name":"_deadline","nameLocation":"14248:9:161","nodeType":"VariableDeclaration","scope":77680,"src":"14240:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77636,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77639,"mutability":"mutable","name":"_v","nameLocation":"14265:2:161","nodeType":"VariableDeclaration","scope":77680,"src":"14259:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77638,"name":"uint8","nodeType":"ElementaryTypeName","src":"14259:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77641,"mutability":"mutable","name":"_r","nameLocation":"14277:2:161","nodeType":"VariableDeclaration","scope":77680,"src":"14269:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14269:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77643,"mutability":"mutable","name":"_s","nameLocation":"14289:2:161","nodeType":"VariableDeclaration","scope":77680,"src":"14281:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14281:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14223:69:161"},"returnParameters":{"id":77649,"nodeType":"ParameterList","parameters":[],"src":"14357:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77698,"nodeType":"FunctionDefinition","src":"14802:208:161","nodes":[],"body":{"id":77697,"nodeType":"Block","src":"14867:143:161","nodes":[],"statements":[{"assignments":[null,77687],"declarations":[null,{"constant":false,"id":77687,"mutability":"mutable","name":"success","nameLocation":"14885:7:161","nodeType":"VariableDeclaration","scope":77697,"src":"14880:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77686,"name":"bool","nodeType":"ElementaryTypeName","src":"14880:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77690,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77688,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77978,"src":"14896:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14896:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14877:52:161"},{"expression":{"arguments":[{"id":77692,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77687,"src":"14947:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77693,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"14956:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14939:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14939:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77696,"nodeType":"ExpressionStatement","src":"14939:64:161"}]},"baseFunctions":[74378],"documentation":{"id":77681,"nodeType":"StructuredDocumentation","src":"14562:235:161","text":" @dev Transfers locked value to the inheritor.\n Note that this function can be called only after program exited.\n As result of execution, the `LockedValueTransferRequested` event will be emitted."},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":77684,"kind":"modifierInvocation","modifierName":{"id":77683,"name":"whenNotPaused","nameLocations":["14853:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"14853:13:161"},"nodeType":"ModifierInvocation","src":"14853:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"14811:30:161","parameters":{"id":77682,"nodeType":"ParameterList","parameters":[],"src":"14841:2:161"},"returnParameters":{"id":77685,"nodeType":"ParameterList","parameters":[],"src":"14867:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77777,"nodeType":"FunctionDefinition","src":"16008:749:161","nodes":[],"body":{"id":77776,"nodeType":"Block","src":"16163:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77713,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77328,"src":"16181:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16204:1:161","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":77715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16196:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77714,"name":"address","nodeType":"ElementaryTypeName","src":"16196:7:161","typeDescriptions":{}}},"id":77717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16196:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16181:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77719,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74284,"src":"16208:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16208:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16173:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77722,"nodeType":"ExpressionStatement","src":"16173:59:161"},{"expression":{"arguments":[{"id":77725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16251:8:161","subExpression":{"id":77724,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77331,"src":"16252:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77726,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74286,"src":"16261:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16243:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16243:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77729,"nodeType":"ExpressionStatement","src":"16243:38:161"},{"assignments":[77734],"declarations":[{"constant":false,"id":77734,"mutability":"mutable","name":"implementationSlot","nameLocation":"16324:18:161","nodeType":"VariableDeclaration","scope":77776,"src":"16292:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77733,"nodeType":"UserDefinedTypeName","pathNode":{"id":77732,"name":"StorageSlot.AddressSlot","nameLocations":["16292:11:161","16304:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48971,"src":"16292:23:161"},"referencedDeclaration":48971,"src":"16292:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":77740,"initialValue":{"arguments":[{"expression":{"id":77737,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"16384:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16397:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":45422,"src":"16384:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77735,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"16357:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":49000,"src":"16357:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48971_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":77739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16357:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16292:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77742,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77734,"src":"16436:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16455:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16436:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16472:1:161","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":77745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16464:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77744,"name":"address","nodeType":"ElementaryTypeName","src":"16464:7:161","typeDescriptions":{}}},"id":77747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16464:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16436:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77749,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74288,"src":"16476:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16428:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77752,"nodeType":"ExpressionStatement","src":"16428:73:161"},{"expression":{"id":77755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77753,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77328,"src":"16512:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77754,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77701,"src":"16526:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16512:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77756,"nodeType":"ExpressionStatement","src":"16512:26:161"},{"expression":{"id":77759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77757,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77331,"src":"16548:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77758,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77705,"src":"16558:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16548:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77760,"nodeType":"ExpressionStatement","src":"16548:18:161"},{"expression":{"id":77765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77761,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77734,"src":"16576:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16595:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16576:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77764,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77703,"src":"16603:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16576:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77766,"nodeType":"ExpressionStatement","src":"16576:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77767,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77707,"src":"16631:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16660:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16631:30:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77775,"nodeType":"IfStatement","src":"16627:124:161","trueBody":{"id":77774,"nodeType":"Block","src":"16663:88:161","statements":[{"eventCall":{"arguments":[{"id":77771,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77707,"src":"16714:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77770,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"16682:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16682:58:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77773,"nodeType":"EmitStatement","src":"16677:63:161"}]}}]},"baseFunctions":[74390],"documentation":{"id":77699,"nodeType":"StructuredDocumentation","src":"15070:933:161","text":" @dev Initializes the contract with the given parameters.\n Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default,\n so we do the initialization separately after creating `Mirror` in this method.\n @param _initializer The address of the initializer. Only this address will be able to send the first (init) message.\n @param _abiInterface The address of the ABI interface. This address will be displayed as \"proxy implementation\"\n and is necessary to show the available methods of `Mirror` smart contract on Etherscan.\n In case it is a Sails framework smart contract, the user can set his own ABI.\n @param _isSmall The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\n @param _initialExecutableBalance The initial executable balance to be transferred to the program."},"functionSelector":"bfa28576","implemented":true,"kind":"function","modifiers":[{"id":77710,"kind":"modifierInvocation","modifierName":{"id":77709,"name":"onlyRouter","nameLocations":["16148:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77436,"src":"16148:10:161"},"nodeType":"ModifierInvocation","src":"16148:10:161"}],"name":"initialize","nameLocation":"16017:10:161","parameters":{"id":77708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77701,"mutability":"mutable","name":"_initializer","nameLocation":"16036:12:161","nodeType":"VariableDeclaration","scope":77777,"src":"16028:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77700,"name":"address","nodeType":"ElementaryTypeName","src":"16028:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77703,"mutability":"mutable","name":"_abiInterface","nameLocation":"16058:13:161","nodeType":"VariableDeclaration","scope":77777,"src":"16050:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77702,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77705,"mutability":"mutable","name":"_isSmall","nameLocation":"16078:8:161","nodeType":"VariableDeclaration","scope":77777,"src":"16073:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77704,"name":"bool","nodeType":"ElementaryTypeName","src":"16073:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77707,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16096:25:161","nodeType":"VariableDeclaration","scope":77777,"src":"16088:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77706,"name":"uint128","nodeType":"ElementaryTypeName","src":"16088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16027:95:161"},"returnParameters":{"id":77711,"nodeType":"ParameterList","parameters":[],"src":"16163:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77895,"nodeType":"FunctionDefinition","src":"16971:2154:161","nodes":[],"body":{"id":77894,"nodeType":"Block","src":"17143:1982:161","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77789,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"17254:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83295,"src":"17254:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77793,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17285:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78877","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78877","typeString":"contract Mirror"}],"id":77792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17277:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77791,"name":"address","nodeType":"ElementaryTypeName","src":"17277:7:161","typeDescriptions":{}}},"id":77794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17277:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17254:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77796,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74290,"src":"17292:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77788,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17246:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17246:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77799,"nodeType":"ExpressionStatement","src":"17246:63:161"},{"condition":{"expression":{"id":77800,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"17442:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17454:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83310,"src":"17442:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":77808,"nodeType":"IfStatement","src":"17438:113:161","trueBody":{"id":77807,"nodeType":"Block","src":"17482:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77803,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"17513:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83307,"src":"17513:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77802,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77542,"src":"17496:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17496:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77806,"nodeType":"ExpressionStatement","src":"17496:44:161"}]}},{"assignments":[77811],"declarations":[{"constant":false,"id":77811,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17637:18:161","nodeType":"VariableDeclaration","scope":77894,"src":"17629:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17629:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77816,"initialValue":{"arguments":[{"expression":{"id":77813,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"17672:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17684:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83320,"src":"17672:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83255_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77812,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78076,"src":"17658:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83255_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17658:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17629:64:161"},{"assignments":[77819],"declarations":[{"constant":false,"id":77819,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17779:15:161","nodeType":"VariableDeclaration","scope":77894,"src":"17771:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17771:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":77824,"initialValue":{"arguments":[{"expression":{"id":77821,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"17810:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":83315,"src":"17810:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":77820,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78368,"src":"17797:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$83369_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":77823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17797:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17771:63:161"},{"assignments":[77827],"declarations":[{"constant":false,"id":77827,"mutability":"mutable","name":"eventsHashesHash","nameLocation":"17945:16:161","nodeType":"VariableDeclaration","scope":77894,"src":"17937:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17937:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Emit Gear events (with `destination = address(0)`).","id":77832,"initialValue":{"arguments":[{"expression":{"id":77829,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"17980:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17992:6:161","memberName":"events","nodeType":"MemberAccess","referencedDeclaration":83324,"src":"17980:18:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":77828,"name":"_emitGearEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78446,"src":"17964:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata[] calldata) returns (bytes32)"}},"id":77831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17964:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17937:62:161"},{"assignments":[77835],"declarations":[{"constant":false,"id":77835,"mutability":"mutable","name":"ethEventsHashesHash","nameLocation":"18118:19:161","nodeType":"VariableDeclaration","scope":77894,"src":"18110:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18110:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Emit Ethereum events (with `destination = ETH_EVENT_ADDR`).","id":77840,"initialValue":{"arguments":[{"expression":{"id":77837,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18155:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18167:9:161","memberName":"ethEvents","nodeType":"MemberAccess","referencedDeclaration":83328,"src":"18155:21:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":77836,"name":"_emitEthEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78524,"src":"18140:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata[] calldata) returns (bytes32)"}},"id":77839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18140:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18110:67:161"},{"condition":{"expression":{"id":77841,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18257:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18269:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83301,"src":"18257:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":77861,"nodeType":"Block","src":"18344:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77850,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18366:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18378:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83304,"src":"18366:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18399:1:161","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":77853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18391:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77852,"name":"address","nodeType":"ElementaryTypeName","src":"18391:7:161","typeDescriptions":{}}},"id":77855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18391:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18366:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77857,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74292,"src":"18403:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18403:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77849,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18358:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18358:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77860,"nodeType":"ExpressionStatement","src":"18358:67:161"}]},"id":77862,"nodeType":"IfStatement","src":"18253:183:161","trueBody":{"id":77848,"nodeType":"Block","src":"18277:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":77844,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18305:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18317:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83304,"src":"18305:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77843,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78748,"src":"18291:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18291:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77847,"nodeType":"ExpressionStatement","src":"18291:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77863,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77316,"src":"18524:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77864,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18537:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18549:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83298,"src":"18537:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18524:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":77873,"nodeType":"IfStatement","src":"18520:110:161","trueBody":{"id":77872,"nodeType":"Block","src":"18563:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":77868,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18594:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18606:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83298,"src":"18594:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77867,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78763,"src":"18577:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18577:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77871,"nodeType":"ExpressionStatement","src":"18577:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":77876,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18768:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18780:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83295,"src":"18768:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77878,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18801:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18813:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83298,"src":"18801:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77880,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18839:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18851:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83301,"src":"18839:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":77882,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18871:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18883:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83304,"src":"18871:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77884,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18906:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18918:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83307,"src":"18906:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":77886,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77781,"src":"18946:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83310,"src":"18946:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":77888,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77819,"src":"18998:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77889,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77811,"src":"19027:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77890,"name":"eventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77827,"src":"19059:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77891,"name":"ethEventsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77835,"src":"19089:19:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77874,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"18730:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":77875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18735:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83618,"src":"18730:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":77892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18730:388:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77787,"id":77893,"nodeType":"Return","src":"18723:395:161"}]},"baseFunctions":[74399],"documentation":{"id":77778,"nodeType":"StructuredDocumentation","src":"16763:203:161","text":" @dev Performs state transition for the `Mirror` contract.\n @param _transition The state transition data.\n @return transitionHash The hash of the performed state transition."},"functionSelector":"f76207bb","implemented":true,"kind":"function","modifiers":[{"id":77784,"kind":"modifierInvocation","modifierName":{"id":77783,"name":"onlyRouter","nameLocations":["17087:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77436,"src":"17087:10:161"},"nodeType":"ModifierInvocation","src":"17087:10:161"}],"name":"performStateTransition","nameLocation":"16980:22:161","parameters":{"id":77782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77781,"mutability":"mutable","name":"_transition","nameLocation":"17033:11:161","nodeType":"VariableDeclaration","scope":77895,"src":"17003:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77780,"nodeType":"UserDefinedTypeName","pathNode":{"id":77779,"name":"Gear.StateTransition","nameLocations":["17003:4:161","17008:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83329,"src":"17003:20:161"},"referencedDeclaration":83329,"src":"17003:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17002:43:161"},"returnParameters":{"id":77787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77786,"mutability":"mutable","name":"transitionHash","nameLocation":"17123:14:161","nodeType":"VariableDeclaration","scope":77895,"src":"17115:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17115:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17114:24:161"},"scope":78877,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77945,"nodeType":"FunctionDefinition","src":"19558:760:161","nodes":[],"body":{"id":77944,"nodeType":"Block","src":"19741:577:161","nodes":[],"statements":[{"assignments":[77910],"declarations":[{"constant":false,"id":77910,"mutability":"mutable","name":"_value","nameLocation":"19759:6:161","nodeType":"VariableDeclaration","scope":77944,"src":"19751:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77909,"name":"uint128","nodeType":"ElementaryTypeName","src":"19751:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77916,"initialValue":{"arguments":[{"expression":{"id":77913,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19776:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19780:5:161","memberName":"value","nodeType":"MemberAccess","src":"19776:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19768:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77911,"name":"uint128","nodeType":"ElementaryTypeName","src":"19768:7:161","typeDescriptions":{}}},"id":77915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19768:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19751:35:161"},{"expression":{"arguments":[{"id":77918,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77910,"src":"19814:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77917,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77542,"src":"19797:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19797:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77920,"nodeType":"ExpressionStatement","src":"19797:24:161"},{"assignments":[77922],"declarations":[{"constant":false,"id":77922,"mutability":"mutable","name":"_nonce","nameLocation":"19840:6:161","nodeType":"VariableDeclaration","scope":77944,"src":"19832:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77921,"name":"uint256","nodeType":"ElementaryTypeName","src":"19832:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77924,"initialValue":{"id":77923,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"19849:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19832:22:161"},{"assignments":[77927],"declarations":[{"constant":false,"id":77927,"mutability":"mutable","name":"id","nameLocation":"20023:2:161","nodeType":"VariableDeclaration","scope":77944,"src":"20015:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20015:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":77928,"nodeType":"VariableDeclarationStatement","src":"20015:10:161"},{"AST":{"nativeSrc":"20060:129:161","nodeType":"YulBlock","src":"20060:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20081:4:161","nodeType":"YulLiteral","src":"20081:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"20091:2:161","nodeType":"YulLiteral","src":"20091:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"20095:7:161","nodeType":"YulIdentifier","src":"20095:7:161"},"nativeSrc":"20095:9:161","nodeType":"YulFunctionCall","src":"20095:9:161"}],"functionName":{"name":"shl","nativeSrc":"20087:3:161","nodeType":"YulIdentifier","src":"20087:3:161"},"nativeSrc":"20087:18:161","nodeType":"YulFunctionCall","src":"20087:18:161"}],"functionName":{"name":"mstore","nativeSrc":"20074:6:161","nodeType":"YulIdentifier","src":"20074:6:161"},"nativeSrc":"20074:32:161","nodeType":"YulFunctionCall","src":"20074:32:161"},"nativeSrc":"20074:32:161","nodeType":"YulExpressionStatement","src":"20074:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20126:4:161","nodeType":"YulLiteral","src":"20126:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"20132:6:161","nodeType":"YulIdentifier","src":"20132:6:161"}],"functionName":{"name":"mstore","nativeSrc":"20119:6:161","nodeType":"YulIdentifier","src":"20119:6:161"},"nativeSrc":"20119:20:161","nodeType":"YulFunctionCall","src":"20119:20:161"},"nativeSrc":"20119:20:161","nodeType":"YulExpressionStatement","src":"20119:20:161"},{"nativeSrc":"20152:27:161","nodeType":"YulAssignment","src":"20152:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"20168:4:161","nodeType":"YulLiteral","src":"20168:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20174:4:161","nodeType":"YulLiteral","src":"20174:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"20158:9:161","nodeType":"YulIdentifier","src":"20158:9:161"},"nativeSrc":"20158:21:161","nodeType":"YulFunctionCall","src":"20158:21:161"},"variableNames":[{"name":"id","nativeSrc":"20152:2:161","nodeType":"YulIdentifier","src":"20152:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77922,"isOffset":false,"isSlot":false,"src":"20132:6:161","valueSize":1},{"declaration":77927,"isOffset":false,"isSlot":false,"src":"20152:2:161","valueSize":1}],"flags":["memory-safe"],"id":77929,"nodeType":"InlineAssembly","src":"20035:154:161"},{"expression":{"id":77931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20198:7:161","subExpression":{"id":77930,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"20198:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77932,"nodeType":"ExpressionStatement","src":"20198:7:161"},{"eventCall":{"arguments":[{"id":77934,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77927,"src":"20246:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77935,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20250:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20254:6:161","memberName":"sender","nodeType":"MemberAccess","src":"20250:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77937,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77898,"src":"20262:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77938,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77910,"src":"20272:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77939,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77900,"src":"20280:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77933,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"20221:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20221:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77941,"nodeType":"EmitStatement","src":"20216:75:161"},{"expression":{"id":77942,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77927,"src":"20309:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77908,"id":77943,"nodeType":"Return","src":"20302:9:161"}]},"documentation":{"id":77896,"nodeType":"StructuredDocumentation","src":"19189:364:161","text":" @dev Internal implementation of `sendMessage` function.\n This function is used to send message to the program and emit `MessageQueueingRequested` event.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"implemented":true,"kind":"function","modifiers":[{"id":77903,"kind":"modifierInvocation","modifierName":{"id":77902,"name":"onlyIfActive","nameLocations":["19646:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77397,"src":"19646:12:161"},"nodeType":"ModifierInvocation","src":"19646:12:161"},{"id":77905,"kind":"modifierInvocation","modifierName":{"id":77904,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19667:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77371,"src":"19667:33:161"},"nodeType":"ModifierInvocation","src":"19667:33:161"}],"name":"_sendMessage","nameLocation":"19567:12:161","parameters":{"id":77901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77898,"mutability":"mutable","name":"_payload","nameLocation":"19595:8:161","nodeType":"VariableDeclaration","scope":77945,"src":"19580:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77897,"name":"bytes","nodeType":"ElementaryTypeName","src":"19580:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77900,"mutability":"mutable","name":"_callReply","nameLocation":"19610:10:161","nodeType":"VariableDeclaration","scope":77945,"src":"19605:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77899,"name":"bool","nodeType":"ElementaryTypeName","src":"19605:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19579:42:161"},"returnParameters":{"id":77908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77907,"mutability":"mutable","name":"messageId","nameLocation":"19726:9:161","nodeType":"VariableDeclaration","scope":77945,"src":"19718:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19718:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19717:19:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77978,"nodeType":"FunctionDefinition","src":"20647:470:161","nodes":[],"body":{"id":77977,"nodeType":"Block","src":"20796:321:161","nodes":[],"statements":[{"assignments":[77956],"declarations":[{"constant":false,"id":77956,"mutability":"mutable","name":"balance","nameLocation":"20814:7:161","nodeType":"VariableDeclaration","scope":77977,"src":"20806:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77955,"name":"uint256","nodeType":"ElementaryTypeName","src":"20806:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77962,"initialValue":{"expression":{"arguments":[{"id":77959,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20832:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78877","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78877","typeString":"contract Mirror"}],"id":77958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20824:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77957,"name":"address","nodeType":"ElementaryTypeName","src":"20824:7:161","typeDescriptions":{}}},"id":77960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20824:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20838:7:161","memberName":"balance","nodeType":"MemberAccess","src":"20824:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20806:39:161"},{"assignments":[77964],"declarations":[{"constant":false,"id":77964,"mutability":"mutable","name":"balance128","nameLocation":"21013:10:161","nodeType":"VariableDeclaration","scope":77977,"src":"21005:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77963,"name":"uint128","nodeType":"ElementaryTypeName","src":"21005:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77969,"initialValue":{"arguments":[{"id":77967,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77956,"src":"21034:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21026:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77965,"name":"uint128","nodeType":"ElementaryTypeName","src":"21026:7:161","typeDescriptions":{}}},"id":77968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21026:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"21005:37:161"},{"expression":{"components":[{"id":77970,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77964,"src":"21060:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":77972,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77325,"src":"21087:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77973,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77964,"src":"21098:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77971,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78815,"src":"21072:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21072:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21059:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":77954,"id":77976,"nodeType":"Return","src":"21052:58:161"}]},"documentation":{"id":77946,"nodeType":"StructuredDocumentation","src":"20324:318:161","text":" @dev Internal implementation of `transferLockedValueToInheritor` function.\n Note that this function can be called only after program exited.\n @return valueTransferred The amount of WVARA transferred.\n @return transferSuccess The flag indicating if the transfer was successful."},"implemented":true,"kind":"function","modifiers":[{"id":77949,"kind":"modifierInvocation","modifierName":{"id":77948,"name":"onlyIfExited","nameLocations":["20714:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77417,"src":"20714:12:161"},"nodeType":"ModifierInvocation","src":"20714:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"20656:31:161","parameters":{"id":77947,"nodeType":"ParameterList","parameters":[],"src":"20687:2:161"},"returnParameters":{"id":77954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77951,"mutability":"mutable","name":"valueTransferred","nameLocation":"20752:16:161","nodeType":"VariableDeclaration","scope":77978,"src":"20744:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77950,"name":"uint128","nodeType":"ElementaryTypeName","src":"20744:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77953,"mutability":"mutable","name":"transferSuccess","nameLocation":"20775:15:161","nodeType":"VariableDeclaration","scope":77978,"src":"20770:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77952,"name":"bool","nodeType":"ElementaryTypeName","src":"20770:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20743:48:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78076,"nodeType":"FunctionDefinition","src":"21685:1232:161","nodes":[],"body":{"id":78075,"nodeType":"Block","src":"21769:1148:161","nodes":[],"statements":[{"assignments":[77989],"declarations":[{"constant":false,"id":77989,"mutability":"mutable","name":"messagesLen","nameLocation":"21787:11:161","nodeType":"VariableDeclaration","scope":78075,"src":"21779:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77988,"name":"uint256","nodeType":"ElementaryTypeName","src":"21779:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77992,"initialValue":{"expression":{"id":77990,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77983,"src":"21801:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21811:6:161","memberName":"length","nodeType":"MemberAccess","src":"21801:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21779:38:161"},{"assignments":[77994],"declarations":[{"constant":false,"id":77994,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21835:18:161","nodeType":"VariableDeclaration","scope":78075,"src":"21827:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77993,"name":"uint256","nodeType":"ElementaryTypeName","src":"21827:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77998,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77995,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77989,"src":"21856:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21870:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21856:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21827:45:161"},{"assignments":[78000],"declarations":[{"constant":false,"id":78000,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21890:20:161","nodeType":"VariableDeclaration","scope":78075,"src":"21882:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77999,"name":"uint256","nodeType":"ElementaryTypeName","src":"21882:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78005,"initialValue":{"arguments":[{"id":78003,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77994,"src":"21929:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78001,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21913:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21920:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"21913:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21913:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21882:66:161"},{"assignments":[78007],"declarations":[{"constant":false,"id":78007,"mutability":"mutable","name":"offset","nameLocation":"21966:6:161","nodeType":"VariableDeclaration","scope":78075,"src":"21958:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78006,"name":"uint256","nodeType":"ElementaryTypeName","src":"21958:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78009,"initialValue":{"hexValue":"30","id":78008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21975:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21958:18:161"},{"body":{"id":78066,"nodeType":"Block","src":"22029:785:161","statements":[{"assignments":[78024],"declarations":[{"constant":false,"id":78024,"mutability":"mutable","name":"message","nameLocation":"22065:7:161","nodeType":"VariableDeclaration","scope":78066,"src":"22043:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78023,"nodeType":"UserDefinedTypeName","pathNode":{"id":78022,"name":"Gear.Message","nameLocations":["22043:4:161","22048:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83255,"src":"22043:12:161"},"referencedDeclaration":83255,"src":"22043:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78028,"initialValue":{"baseExpression":{"id":78025,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77983,"src":"22075:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78027,"indexExpression":{"id":78026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78011,"src":"22085:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22075:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"22043:44:161"},{"assignments":[78031],"declarations":[{"constant":false,"id":78031,"mutability":"mutable","name":"messageHash","nameLocation":"22193:11:161","nodeType":"VariableDeclaration","scope":78066,"src":"22185:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22185:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78036,"initialValue":{"arguments":[{"id":78034,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78024,"src":"22224:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78032,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"22207:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":78033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22212:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83553,"src":"22207:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83255_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22207:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22185:47:161"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":78040,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78000,"src":"22396:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78041,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78007,"src":"22418:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78042,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78031,"src":"22426:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78037,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"22370:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22377:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"22370:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22370:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78044,"nodeType":"ExpressionStatement","src":"22370:68:161"},{"id":78049,"nodeType":"UncheckedBlock","src":"22452:55:161","statements":[{"expression":{"id":78047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78045,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78007,"src":"22480:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22490:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22480:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78048,"nodeType":"ExpressionStatement","src":"22480:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78050,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78024,"src":"22646:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22654:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"22646:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22667:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83287,"src":"22646:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22673:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22646:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":78064,"nodeType":"Block","src":"22745:59:161","statements":[{"expression":{"arguments":[{"id":78061,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78024,"src":"22781:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78060,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78255,"src":"22763:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83255_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22763:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78063,"nodeType":"ExpressionStatement","src":"22763:26:161"}]},"id":78065,"nodeType":"IfStatement","src":"22642:162:161","trueBody":{"id":78059,"nodeType":"Block","src":"22676:63:161","statements":[{"expression":{"arguments":[{"id":78056,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78024,"src":"22716:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78055,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78124,"src":"22694:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83255_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78058,"nodeType":"ExpressionStatement","src":"22694:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78011,"src":"22007:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78015,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77989,"src":"22011:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22007:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78067,"initializationExpression":{"assignments":[78011],"declarations":[{"constant":false,"id":78011,"mutability":"mutable","name":"i","nameLocation":"22000:1:161","nodeType":"VariableDeclaration","scope":78067,"src":"21992:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78010,"name":"uint256","nodeType":"ElementaryTypeName","src":"21992:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78013,"initialValue":{"hexValue":"30","id":78012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22004:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21992:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22024:3:161","subExpression":{"id":78017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78011,"src":"22024:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78019,"nodeType":"ExpressionStatement","src":"22024:3:161"},"nodeType":"ForStatement","src":"21987:827:161"},{"expression":{"arguments":[{"id":78070,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78000,"src":"22866:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22888:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78072,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77994,"src":"22891:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78068,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"22831:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22838:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"22831:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22831:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77987,"id":78074,"nodeType":"Return","src":"22824:86:161"}]},"documentation":{"id":77979,"nodeType":"StructuredDocumentation","src":"21387:293:161","text":" @dev Internal implementation of `_sendMessages` function.\n It sends all outgoing messages from the `Mirror` contract and emits appropriate events.\n @param _messages The array of messages to be sent.\n @return messagesHash The hash of the sent messages."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"21694:13:161","parameters":{"id":77984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77983,"mutability":"mutable","name":"_messages","nameLocation":"21732:9:161","nodeType":"VariableDeclaration","scope":78076,"src":"21708:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":77981,"nodeType":"UserDefinedTypeName","pathNode":{"id":77980,"name":"Gear.Message","nameLocations":["21708:4:161","21713:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83255,"src":"21708:12:161"},"referencedDeclaration":83255,"src":"21708:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_storage_ptr","typeString":"struct Gear.Message"}},"id":77982,"nodeType":"ArrayTypeName","src":"21708:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83255_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21707:35:161"},"returnParameters":{"id":77987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78076,"src":"21760:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21760:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21759:9:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78124,"nodeType":"FunctionDefinition","src":"23352:834:161","nodes":[],"body":{"id":78123,"nodeType":"Block","src":"23423:763:161","nodes":[],"statements":[{"condition":{"expression":{"id":78083,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"23675:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23684:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"23675:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78111,"nodeType":"IfStatement","src":"23671:417:161","trueBody":{"id":78110,"nodeType":"Block","src":"23690:398:161","statements":[{"assignments":[78086,null],"declarations":[{"constant":false,"id":78086,"mutability":"mutable","name":"success","nameLocation":"23710:7:161","nodeType":"VariableDeclaration","scope":78110,"src":"23705:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78085,"name":"bool","nodeType":"ElementaryTypeName","src":"23705:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78095,"initialValue":{"arguments":[{"expression":{"id":78092,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"23762:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23771:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83244,"src":"23762:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":78087,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"23722:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23731:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"23722:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23743:4:161","memberName":"call","nodeType":"MemberAccess","src":"23722:25:161","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":78091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23753:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23722:39:161","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":78094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23722:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23704:75:161"},{"condition":{"id":78097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23798:8:161","subExpression":{"id":78096,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78086,"src":"23799:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78109,"nodeType":"IfStatement","src":"23794:284:161","trueBody":{"id":78108,"nodeType":"Block","src":"23808:270:161","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78099,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"23989:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23998:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"23989:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78101,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"24002:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24011:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"24002:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78103,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"24024:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24033:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"24024:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78098,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"23971:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23971:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78106,"nodeType":"EmitStatement","src":"23966:73:161"},{"functionReturnParameters":78082,"id":78107,"nodeType":"Return","src":"24057:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78113,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"24111:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24120:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"24111:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78115,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"24124:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24133:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"24124:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78117,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"24146:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24155:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83244,"src":"24146:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78119,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78080,"src":"24164:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24173:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"24164:14:161","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":78112,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"24103:7:161","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":78121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24103:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78122,"nodeType":"EmitStatement","src":"24098:81:161"}]},"documentation":{"id":78077,"nodeType":"StructuredDocumentation","src":"22923:424:161","text":" @dev Internal function to send message that goes to mailbox.\n Value never sent since goes to mailbox.\n If `_message.call = true`, then call will be made to `_message.destination`\n with _message.payload and gas limit of 500_000 to prevent DoS attacks.\n If call fails, then `MessageCallFailed` event will be emitted.\n @param _message The message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"23361:21:161","parameters":{"id":78081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78080,"mutability":"mutable","name":"_message","nameLocation":"23405:8:161","nodeType":"VariableDeclaration","scope":78124,"src":"23383:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78079,"nodeType":"UserDefinedTypeName","pathNode":{"id":78078,"name":"Gear.Message","nameLocations":["23383:4:161","23388:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83255,"src":"23383:12:161"},"referencedDeclaration":83255,"src":"23383:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23382:32:161"},"returnParameters":{"id":78082,"nodeType":"ParameterList","parameters":[],"src":"23423:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78255,"nodeType":"FunctionDefinition","src":"30153:1645:161","nodes":[],"body":{"id":78254,"nodeType":"Block","src":"30220:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78131,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30234:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30243:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"30234:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78252,"nodeType":"Block","src":"31449:343:161","statements":[{"assignments":[78220],"declarations":[{"constant":false,"id":78220,"mutability":"mutable","name":"transferSuccess","nameLocation":"31468:15:161","nodeType":"VariableDeclaration","scope":78252,"src":"31463:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78219,"name":"bool","nodeType":"ElementaryTypeName","src":"31463:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78227,"initialValue":{"arguments":[{"expression":{"id":78222,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31501:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31510:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"31501:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78224,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31523:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31532:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"31523:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78221,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78815,"src":"31486:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31486:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31463:75:161"},{"condition":{"id":78229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31556:16:161","subExpression":{"id":78228,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78220,"src":"31557:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78238,"nodeType":"IfStatement","src":"31552:117:161","trueBody":{"id":78237,"nodeType":"Block","src":"31574:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78231,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31617:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31626:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"31617:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78233,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31639:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31648:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"31639:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78230,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74248,"src":"31597:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31597:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78236,"nodeType":"EmitStatement","src":"31592:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78240,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31694:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31703:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83244,"src":"31694:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78242,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31712:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31721:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"31712:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78244,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31728:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31737:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"31728:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31750:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83287,"src":"31728:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78247,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31754:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31763:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"31754:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31776:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83290,"src":"31754:26:161","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":78239,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"31688:5:161","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":78250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31688:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78251,"nodeType":"EmitStatement","src":"31683:98:161"}]},"id":78253,"nodeType":"IfStatement","src":"30230:1562:161","trueBody":{"id":78218,"nodeType":"Block","src":"30249:1194:161","statements":[{"assignments":[78134],"declarations":[{"constant":false,"id":78134,"mutability":"mutable","name":"isSuccessReply","nameLocation":"30268:14:161","nodeType":"VariableDeclaration","scope":78218,"src":"30263:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78133,"name":"bool","nodeType":"ElementaryTypeName","src":"30263:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78142,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78135,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30285:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30294:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"30285:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30307:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83290,"src":"30285:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78139,"indexExpression":{"hexValue":"30","id":78138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30312:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30285:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30318:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30285:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30263:56:161"},{"assignments":[78144],"declarations":[{"constant":false,"id":78144,"mutability":"mutable","name":"payload","nameLocation":"30347:7:161","nodeType":"VariableDeclaration","scope":78218,"src":"30334:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78143,"name":"bytes","nodeType":"ElementaryTypeName","src":"30334:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78145,"nodeType":"VariableDeclarationStatement","src":"30334:20:161"},{"condition":{"id":78146,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78134,"src":"30373:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78169,"nodeType":"Block","src":"30454:348:161","statements":[{"expression":{"id":78167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78153,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78144,"src":"30624:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78156,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"30678:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30689:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73741,"src":"30678:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":78158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30702:8:161","memberName":"selector","nodeType":"MemberAccess","src":"30678:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":78159,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30712:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30721:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"30712:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78161,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30725:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30734:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83244,"src":"30725:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78163,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30743:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30752:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"30743:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30765:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83290,"src":"30743:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78154,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30634:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30638:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"30634:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":78166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30634:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"30624:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78168,"nodeType":"ExpressionStatement","src":"30624:163:161"}]},"id":78170,"nodeType":"IfStatement","src":"30369:433:161","trueBody":{"id":78152,"nodeType":"Block","src":"30389:59:161","statements":[{"expression":{"id":78150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78147,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78144,"src":"30407:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78148,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30417:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30426:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83244,"src":"30417:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"30407:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78151,"nodeType":"ExpressionStatement","src":"30407:26:161"}]}},{"assignments":[78172,null],"declarations":[{"constant":false,"id":78172,"mutability":"mutable","name":"success","nameLocation":"30822:7:161","nodeType":"VariableDeclaration","scope":78218,"src":"30817:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78171,"name":"bool","nodeType":"ElementaryTypeName","src":"30817:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78182,"initialValue":{"arguments":[{"id":78180,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78144,"src":"30897:7:161","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":{"expression":{"id":78173,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30834:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30843:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"30834:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30855:4:161","memberName":"call","nodeType":"MemberAccess","src":"30834:25:161","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":78179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30865:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":78177,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30881:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30890:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"30881:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"30834:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30834:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"30816:89:161"},{"condition":{"id":78184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30924:8:161","subExpression":{"id":78183,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78172,"src":"30925:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78217,"nodeType":"IfStatement","src":"30920:513:161","trueBody":{"id":78216,"nodeType":"Block","src":"30934:499:161","statements":[{"assignments":[78186],"declarations":[{"constant":false,"id":78186,"mutability":"mutable","name":"transferSuccess","nameLocation":"30957:15:161","nodeType":"VariableDeclaration","scope":78216,"src":"30952:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78185,"name":"bool","nodeType":"ElementaryTypeName","src":"30952:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78193,"initialValue":{"arguments":[{"expression":{"id":78188,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"30990:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30999:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"30990:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78190,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31012:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31021:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"31012:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78187,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78815,"src":"30975:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30975:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30952:75:161"},{"condition":{"id":78195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31049:16:161","subExpression":{"id":78194,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78186,"src":"31050:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78204,"nodeType":"IfStatement","src":"31045:125:161","trueBody":{"id":78203,"nodeType":"Block","src":"31067:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78197,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31114:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31123:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83241,"src":"31114:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78199,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31136:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31145:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"31136:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78196,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74248,"src":"31094:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31094:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78202,"nodeType":"EmitStatement","src":"31089:62:161"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78206,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31349:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31358:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83247,"src":"31349:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78208,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31365:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31374:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"31365:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31387:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83287,"src":"31365:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78211,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78128,"src":"31391:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31400:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83251,"src":"31391:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83291_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31413:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83290,"src":"31391:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":78205,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"31333:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31333:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78215,"nodeType":"EmitStatement","src":"31328:90:161"}]}}]}}]},"documentation":{"id":78125,"nodeType":"StructuredDocumentation","src":"24192:5956:161","text":" @dev Internal function to send reply message.\n Non-zero value always sent since never goes to mailbox.\n Emits `Reply` event if `_message.call = false`.\n If `_message.call = true`, the call will be made to `_message.destination` with\n gas limit of 500_000 to prevent DoS attacks and with `_message.value`.\n The `_message.replyDetails` will also be evaluated to determine the reply's success.\n If `gear_core::message::ReplyCode` is successful, `_message.payload` will be used.\n If unsuccessful, `payload = ICallbacks.onErrorReply(_message.id, _message.payload, _message.replyDetails.code)`\n will be used and the appropriate method on `_message.destination` will be called.\n Function will also always attempt to send `_message.value`. If this fails for some reason,\n the `ReplyTransferFailed` event will be emitted.\n If call fails, then `ReplyCallFailed` event will be emitted.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n All the contract method does is return `u32` as result (reply):\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User also generates \"Solidity Callback Interface\" and implements own `CounterCaller` smart contract,\n which will handle reply hooks in methods starting with `replyOn_`:\n ```solidity\n interface ICounterCallbacks {\n function replyOn_init(bytes32 messageId) external;\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external;\n // ... other methods\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode) external payable;\n }\n contract CounterCaller is ICounterCallbacks {\n ICounter public immutable MIRROR;\n constructor(ICounter _mirror) {\n MIRROR = _mirror;\n }\n modifier onlyMirror() {\n _onlyMirror();\n _;\n }\n function _onlyMirror() internal view {\n require(msg.sender == address(MIRROR));\n }\n // Call `Counter` constructor on our platform\n function init(uint32 counter) external {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.init(true, counter);\n }\n function replyOn_init(bytes32 messageId) external onlyMirror {\n // ...\n }\n // Compute `Counter.add(uint32 value) -> uint32 reply` on our platform\n mapping(bytes32 messageId => bool knownMessage) public counterAddInputs;\n mapping(bytes32 messageId => uint32 output) public counterAddResults;\n function counterAdd(uint32 value) external returns (bytes32 messageId) {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.counterAdd(true, value);\n counterAddInputs[_messageId] = true;\n messageId = _messageId;\n }\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external onlyMirror {\n counterAddResults[messageId] = reply;\n }\n // Handle `Counter` errors on our platform\n event ErrorReply(bytes32 messageId, bytes payload, bytes4 replyCode);\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode)\n external\n payable\n onlyMirror\n {\n emit ErrorReply(messageId, payload, replyCode);\n }\n }\n ```\n User calls `CounterCaller.counterAdd(uint32 value)`, and the smart contract calls `ICounter.counterAdd(bool _callReply=true, uint32 value)`.\n Result calculated in WASM smart contract on Sails framework in `Counter.add(uint32 value) -> uint32 reply` method will be passed to\n `replyOn_counterAdd(bytes32 messageId, uint32 reply)`.\n @param _message The reply message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"30162:17:161","parameters":{"id":78129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78128,"mutability":"mutable","name":"_message","nameLocation":"30202:8:161","nodeType":"VariableDeclaration","scope":78255,"src":"30180:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78127,"nodeType":"UserDefinedTypeName","pathNode":{"id":78126,"name":"Gear.Message","nameLocations":["30180:4:161","30185:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83255,"src":"30180:12:161"},"referencedDeclaration":83255,"src":"30180:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83255_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"30179:32:161"},"returnParameters":{"id":78130,"nodeType":"ParameterList","parameters":[],"src":"30220:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78368,"nodeType":"FunctionDefinition","src":"32336:1028:161","nodes":[],"body":{"id":78367,"nodeType":"Block","src":"32431:933:161","nodes":[],"statements":[{"assignments":[78266],"declarations":[{"constant":false,"id":78266,"mutability":"mutable","name":"claimsLen","nameLocation":"32449:9:161","nodeType":"VariableDeclaration","scope":78367,"src":"32441:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78265,"name":"uint256","nodeType":"ElementaryTypeName","src":"32441:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78269,"initialValue":{"expression":{"id":78267,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"32461:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32469:6:161","memberName":"length","nodeType":"MemberAccess","src":"32461:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32441:34:161"},{"assignments":[78271],"declarations":[{"constant":false,"id":78271,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"32493:16:161","nodeType":"VariableDeclaration","scope":78367,"src":"32485:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78270,"name":"uint256","nodeType":"ElementaryTypeName","src":"32485:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78275,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78272,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78266,"src":"32512:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32524:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"32512:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32485:41:161"},{"assignments":[78277],"declarations":[{"constant":false,"id":78277,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"32544:18:161","nodeType":"VariableDeclaration","scope":78367,"src":"32536:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78276,"name":"uint256","nodeType":"ElementaryTypeName","src":"32536:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78282,"initialValue":{"arguments":[{"id":78280,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78271,"src":"32581:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78278,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"32565:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32572:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"32565:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32565:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32536:62:161"},{"assignments":[78284],"declarations":[{"constant":false,"id":78284,"mutability":"mutable","name":"offset","nameLocation":"32616:6:161","nodeType":"VariableDeclaration","scope":78367,"src":"32608:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78283,"name":"uint256","nodeType":"ElementaryTypeName","src":"32608:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78286,"initialValue":{"hexValue":"30","id":78285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32625:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32608:18:161"},{"body":{"id":78358,"nodeType":"Block","src":"32677:588:161","statements":[{"assignments":[78301],"declarations":[{"constant":false,"id":78301,"mutability":"mutable","name":"claim","nameLocation":"32716:5:161","nodeType":"VariableDeclaration","scope":78358,"src":"32691:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":78300,"nodeType":"UserDefinedTypeName","pathNode":{"id":78299,"name":"Gear.ValueClaim","nameLocations":["32691:4:161","32696:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83369,"src":"32691:15:161"},"referencedDeclaration":83369,"src":"32691:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":78305,"initialValue":{"baseExpression":{"id":78302,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"32724:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78304,"indexExpression":{"id":78303,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78288,"src":"32732:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32724:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"32691:43:161"},{"assignments":[78307],"declarations":[{"constant":false,"id":78307,"mutability":"mutable","name":"claimHash","nameLocation":"32756:9:161","nodeType":"VariableDeclaration","scope":78358,"src":"32748:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32748:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78317,"initialValue":{"arguments":[{"expression":{"id":78310,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"32788:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32794:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83364,"src":"32788:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78312,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"32805:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32811:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83366,"src":"32805:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78314,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"32824:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32830:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83368,"src":"32824:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":78308,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"32768:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":78309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32773:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83575,"src":"32768:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":78316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32768:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"32748:88:161"},{"expression":{"arguments":[{"id":78321,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78277,"src":"32876:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78322,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78284,"src":"32896:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78323,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78307,"src":"32904:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78318,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"32850:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32857:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"32850:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32850:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78325,"nodeType":"ExpressionStatement","src":"32850:64:161"},{"id":78330,"nodeType":"UncheckedBlock","src":"32928:55:161","statements":[{"expression":{"id":78328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78326,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78284,"src":"32956:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32966:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"32956:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78329,"nodeType":"ExpressionStatement","src":"32956:12:161"}]},{"assignments":[78332],"declarations":[{"constant":false,"id":78332,"mutability":"mutable","name":"success","nameLocation":"33002:7:161","nodeType":"VariableDeclaration","scope":78358,"src":"32997:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78331,"name":"bool","nodeType":"ElementaryTypeName","src":"32997:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78339,"initialValue":{"arguments":[{"expression":{"id":78334,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"33027:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33033:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83366,"src":"33027:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78336,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"33046:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33052:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83368,"src":"33046:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78333,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78815,"src":"33012:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"32997:61:161"},{"condition":{"id":78340,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78332,"src":"33076:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78356,"nodeType":"Block","src":"33171:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78350,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"33211:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33217:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83364,"src":"33211:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78352,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"33228:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33234:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83368,"src":"33228:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78349,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74255,"src":"33194:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33194:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78355,"nodeType":"EmitStatement","src":"33189:51:161"}]},"id":78357,"nodeType":"IfStatement","src":"33072:183:161","trueBody":{"id":78348,"nodeType":"Block","src":"33085:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78342,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"33121:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33127:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83364,"src":"33121:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78344,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78301,"src":"33138:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33144:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83368,"src":"33138:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78341,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"33108:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33108:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78347,"nodeType":"EmitStatement","src":"33103:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78291,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78288,"src":"32657:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78292,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78266,"src":"32661:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32657:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78359,"initializationExpression":{"assignments":[78288],"declarations":[{"constant":false,"id":78288,"mutability":"mutable","name":"i","nameLocation":"32650:1:161","nodeType":"VariableDeclaration","scope":78359,"src":"32642:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78287,"name":"uint256","nodeType":"ElementaryTypeName","src":"32642:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78290,"initialValue":{"hexValue":"30","id":78289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32654:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"32642:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"32672:3:161","subExpression":{"id":78294,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78288,"src":"32672:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78296,"nodeType":"ExpressionStatement","src":"32672:3:161"},"nodeType":"ForStatement","src":"32637:628:161"},{"expression":{"arguments":[{"id":78362,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78277,"src":"33317:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33337:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78364,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78271,"src":"33340:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78360,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"33282:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33289:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"33282:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33282:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78264,"id":78366,"nodeType":"Return","src":"33275:82:161"}]},"documentation":{"id":78256,"nodeType":"StructuredDocumentation","src":"31903:428:161","text":" @dev Internal function to claim values from messages in mailbox.\n It transfers value to each claim destination and emits appropriate events:\n - `ValueClaimed` event is emitted if transfer is successful\n - `ValueClaimFailed` event is emitted if transfer fails\n @param _claims The array of value claims to be claimed.\n @return claimsHash The hash of the claimed values."},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"32345:12:161","parameters":{"id":78261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78260,"mutability":"mutable","name":"_claims","nameLocation":"32385:7:161","nodeType":"VariableDeclaration","scope":78368,"src":"32358:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":78258,"nodeType":"UserDefinedTypeName","pathNode":{"id":78257,"name":"Gear.ValueClaim","nameLocations":["32358:4:161","32363:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83369,"src":"32358:15:161"},"referencedDeclaration":83369,"src":"32358:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83369_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":78259,"nodeType":"ArrayTypeName","src":"32358:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83369_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"32357:36:161"},"returnParameters":{"id":78264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78263,"mutability":"mutable","name":"claimsHash","nameLocation":"32419:10:161","nodeType":"VariableDeclaration","scope":78368,"src":"32411:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32411:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"32410:20:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78446,"nodeType":"FunctionDefinition","src":"33686:686:161","nodes":[],"body":{"id":78445,"nodeType":"Block","src":"33774:598:161","nodes":[],"statements":[{"assignments":[78378],"declarations":[{"constant":false,"id":78378,"mutability":"mutable","name":"eventsLen","nameLocation":"33792:9:161","nodeType":"VariableDeclaration","scope":78445,"src":"33784:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78377,"name":"uint256","nodeType":"ElementaryTypeName","src":"33784:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78381,"initialValue":{"expression":{"id":78379,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78372,"src":"33804:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":78380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33812:6:161","memberName":"length","nodeType":"MemberAccess","src":"33804:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33784:34:161"},{"assignments":[78383],"declarations":[{"constant":false,"id":78383,"mutability":"mutable","name":"eventsHashesSize","nameLocation":"33836:16:161","nodeType":"VariableDeclaration","scope":78445,"src":"33828:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78382,"name":"uint256","nodeType":"ElementaryTypeName","src":"33828:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78387,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78384,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78378,"src":"33855:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33867:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"33855:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33828:41:161"},{"assignments":[78389],"declarations":[{"constant":false,"id":78389,"mutability":"mutable","name":"eventsHashesMemPtr","nameLocation":"33887:18:161","nodeType":"VariableDeclaration","scope":78445,"src":"33879:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78388,"name":"uint256","nodeType":"ElementaryTypeName","src":"33879:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78394,"initialValue":{"arguments":[{"id":78392,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78383,"src":"33924:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78390,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"33908:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33915:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"33908:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33908:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33879:62:161"},{"assignments":[78396],"declarations":[{"constant":false,"id":78396,"mutability":"mutable","name":"offset","nameLocation":"33959:6:161","nodeType":"VariableDeclaration","scope":78445,"src":"33951:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78395,"name":"uint256","nodeType":"ElementaryTypeName","src":"33951:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78398,"initialValue":{"hexValue":"30","id":78397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33968:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"33951:18:161"},{"body":{"id":78436,"nodeType":"Block","src":"34020:253:161","statements":[{"assignments":[78410],"declarations":[{"constant":false,"id":78410,"mutability":"mutable","name":"eventHash","nameLocation":"34042:9:161","nodeType":"VariableDeclaration","scope":78436,"src":"34034:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34034:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78416,"initialValue":{"arguments":[{"baseExpression":{"id":78412,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78372,"src":"34064:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":78414,"indexExpression":{"id":78413,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78400,"src":"34072:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34064:10:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":78411,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"34054:9:161","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34054:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"34034:41:161"},{"expression":{"arguments":[{"id":78420,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78389,"src":"34115:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78421,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78396,"src":"34135:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78422,"name":"eventHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78410,"src":"34143:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78417,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"34089:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34096:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"34089:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34089:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78424,"nodeType":"ExpressionStatement","src":"34089:64:161"},{"id":78429,"nodeType":"UncheckedBlock","src":"34167:55:161","statements":[{"expression":{"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78425,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78396,"src":"34195:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34205:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"34195:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78428,"nodeType":"ExpressionStatement","src":"34195:12:161"}]},{"eventCall":{"arguments":[{"baseExpression":{"id":78431,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78372,"src":"34251:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":78433,"indexExpression":{"id":78432,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78400,"src":"34259:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34251:10:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":78430,"name":"GearEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74234,"src":"34241:9:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory)"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34241:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78435,"nodeType":"EmitStatement","src":"34236:26:161"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78403,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78400,"src":"34000:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78404,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78378,"src":"34004:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34000:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78437,"initializationExpression":{"assignments":[78400],"declarations":[{"constant":false,"id":78400,"mutability":"mutable","name":"i","nameLocation":"33993:1:161","nodeType":"VariableDeclaration","scope":78437,"src":"33985:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78399,"name":"uint256","nodeType":"ElementaryTypeName","src":"33985:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78402,"initialValue":{"hexValue":"30","id":78401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33997:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"33985:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"34015:3:161","subExpression":{"id":78406,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78400,"src":"34015:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78408,"nodeType":"ExpressionStatement","src":"34015:3:161"},"nodeType":"ForStatement","src":"33980:293:161"},{"expression":{"arguments":[{"id":78440,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78389,"src":"34325:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34345:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78442,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78383,"src":"34348:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78438,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"34290:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34297:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"34290:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34290:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78376,"id":78444,"nodeType":"Return","src":"34283:82:161"}]},"documentation":{"id":78369,"nodeType":"StructuredDocumentation","src":"33370:311:161","text":" @dev Internal function to emit Gear events from messages.\n It computes the hash of all events by keccak256 hashing each event\n and combining them together.\n @param _events The array of events to be emitted.\n @return eventsHash The hash of the emitted events."},"implemented":true,"kind":"function","modifiers":[],"name":"_emitGearEvents","nameLocation":"33695:15:161","parameters":{"id":78373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78372,"mutability":"mutable","name":"_events","nameLocation":"33728:7:161","nodeType":"VariableDeclaration","scope":78446,"src":"33711:24:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":78370,"name":"bytes","nodeType":"ElementaryTypeName","src":"33711:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":78371,"nodeType":"ArrayTypeName","src":"33711:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"33710:26:161"},"returnParameters":{"id":78376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78375,"mutability":"mutable","name":"eventsHash","nameLocation":"33762:10:161","nodeType":"VariableDeclaration","scope":78446,"src":"33754:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33754:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"33753:20:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78524,"nodeType":"FunctionDefinition","src":"34705:700:161","nodes":[],"body":{"id":78523,"nodeType":"Block","src":"34795:610:161","nodes":[],"statements":[{"assignments":[78456],"declarations":[{"constant":false,"id":78456,"mutability":"mutable","name":"eventsLen","nameLocation":"34813:9:161","nodeType":"VariableDeclaration","scope":78523,"src":"34805:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78455,"name":"uint256","nodeType":"ElementaryTypeName","src":"34805:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78459,"initialValue":{"expression":{"id":78457,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78450,"src":"34825:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":78458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34833:6:161","memberName":"length","nodeType":"MemberAccess","src":"34825:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34805:34:161"},{"assignments":[78461],"declarations":[{"constant":false,"id":78461,"mutability":"mutable","name":"eventsHashesSize","nameLocation":"34857:16:161","nodeType":"VariableDeclaration","scope":78523,"src":"34849:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78460,"name":"uint256","nodeType":"ElementaryTypeName","src":"34849:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78465,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78462,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78456,"src":"34876:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34888:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"34876:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34849:41:161"},{"assignments":[78467],"declarations":[{"constant":false,"id":78467,"mutability":"mutable","name":"eventsHashesMemPtr","nameLocation":"34908:18:161","nodeType":"VariableDeclaration","scope":78523,"src":"34900:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78466,"name":"uint256","nodeType":"ElementaryTypeName","src":"34900:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78472,"initialValue":{"arguments":[{"id":78470,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78461,"src":"34945:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78468,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"34929:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34936:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"34929:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34929:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34900:62:161"},{"assignments":[78474],"declarations":[{"constant":false,"id":78474,"mutability":"mutable","name":"offset","nameLocation":"34980:6:161","nodeType":"VariableDeclaration","scope":78523,"src":"34972:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78473,"name":"uint256","nodeType":"ElementaryTypeName","src":"34972:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78476,"initialValue":{"hexValue":"30","id":78475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34989:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"34972:18:161"},{"body":{"id":78514,"nodeType":"Block","src":"35041:265:161","statements":[{"assignments":[78488],"declarations":[{"constant":false,"id":78488,"mutability":"mutable","name":"eventHash","nameLocation":"35063:9:161","nodeType":"VariableDeclaration","scope":78514,"src":"35055:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35055:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78494,"initialValue":{"arguments":[{"baseExpression":{"id":78490,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78450,"src":"35085:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":78492,"indexExpression":{"id":78491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78478,"src":"35093:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35085:10:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":78489,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"35075:9:161","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35075:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"35055:41:161"},{"expression":{"arguments":[{"id":78498,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78467,"src":"35136:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78499,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78474,"src":"35156:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78500,"name":"eventHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78488,"src":"35164:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78495,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"35110:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35117:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"35110:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35110:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78502,"nodeType":"ExpressionStatement","src":"35110:64:161"},{"id":78507,"nodeType":"UncheckedBlock","src":"35188:55:161","statements":[{"expression":{"id":78505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78503,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78474,"src":"35216:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35226:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"35216:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78506,"nodeType":"ExpressionStatement","src":"35216:12:161"}]},{"expression":{"arguments":[{"baseExpression":{"id":78509,"name":"_events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78450,"src":"35284:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":78511,"indexExpression":{"id":78510,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78478,"src":"35292:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35284:10:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":78508,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78715,"src":"35257:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (bytes calldata)"}},"id":78512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35257:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78513,"nodeType":"ExpressionStatement","src":"35257:38:161"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78478,"src":"35021:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78482,"name":"eventsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78456,"src":"35025:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35021:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78515,"initializationExpression":{"assignments":[78478],"declarations":[{"constant":false,"id":78478,"mutability":"mutable","name":"i","nameLocation":"35014:1:161","nodeType":"VariableDeclaration","scope":78515,"src":"35006:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78477,"name":"uint256","nodeType":"ElementaryTypeName","src":"35006:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78480,"initialValue":{"hexValue":"30","id":78479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35018:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"35006:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"35036:3:161","subExpression":{"id":78484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78478,"src":"35036:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78486,"nodeType":"ExpressionStatement","src":"35036:3:161"},"nodeType":"ForStatement","src":"35001:305:161"},{"expression":{"arguments":[{"id":78518,"name":"eventsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78467,"src":"35358:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35378:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78520,"name":"eventsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78461,"src":"35381:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78516,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"35323:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35330:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"35323:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35323:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78454,"id":78522,"nodeType":"Return","src":"35316:82:161"}]},"documentation":{"id":78447,"nodeType":"StructuredDocumentation","src":"34378:322:161","text":" @dev Internal function to emit Ethereum events.\n It computes the hash of all events by keccak256 hashing each event\n and combining them together.\n @param _events The array of Ethereum events to be emitted.\n @return ethEventsHash The hash of the emitted Ethereum events."},"implemented":true,"kind":"function","modifiers":[],"name":"_emitEthEvents","nameLocation":"34714:14:161","parameters":{"id":78451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78450,"mutability":"mutable","name":"_events","nameLocation":"34746:7:161","nodeType":"VariableDeclaration","scope":78524,"src":"34729:24:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":78448,"name":"bytes","nodeType":"ElementaryTypeName","src":"34729:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":78449,"nodeType":"ArrayTypeName","src":"34729:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"34728:26:161"},"returnParameters":{"id":78454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78453,"mutability":"mutable","name":"ethEventsHash","nameLocation":"34780:13:161","nodeType":"VariableDeclaration","scope":78524,"src":"34772:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34772:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34771:23:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78715,"nodeType":"FunctionDefinition","src":"38374:3700:161","nodes":[],"body":{"id":78714,"nodeType":"Block","src":"38443:3631:161","nodes":[],"statements":[{"condition":{"id":78535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38457:22:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78530,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78527,"src":"38459:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38468:6:161","memberName":"length","nodeType":"MemberAccess","src":"38459:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38477:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"38459:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78534,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38458:21:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78538,"nodeType":"IfStatement","src":"38453:59:161","trueBody":{"id":78537,"nodeType":"Block","src":"38481:31:161","statements":[{"functionReturnParameters":78529,"id":78536,"nodeType":"Return","src":"38495:7:161"}]}},{"assignments":[78540],"declarations":[{"constant":false,"id":78540,"mutability":"mutable","name":"topicsLength","nameLocation":"38530:12:161","nodeType":"VariableDeclaration","scope":78714,"src":"38522:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78539,"name":"uint256","nodeType":"ElementaryTypeName","src":"38522:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78541,"nodeType":"VariableDeclarationStatement","src":"38522:20:161"},{"AST":{"nativeSrc":"38577:225:161","nodeType":"YulBlock","src":"38577:225:161","statements":[{"nativeSrc":"38737:55:161","nodeType":"YulAssignment","src":"38737:55:161","value":{"arguments":[{"kind":"number","nativeSrc":"38757:3:161","nodeType":"YulLiteral","src":"38757:3:161","type":"","value":"248"},{"arguments":[{"name":"_payload.offset","nativeSrc":"38775:15:161","nodeType":"YulIdentifier","src":"38775:15:161"}],"functionName":{"name":"calldataload","nativeSrc":"38762:12:161","nodeType":"YulIdentifier","src":"38762:12:161"},"nativeSrc":"38762:29:161","nodeType":"YulFunctionCall","src":"38762:29:161"}],"functionName":{"name":"shr","nativeSrc":"38753:3:161","nodeType":"YulIdentifier","src":"38753:3:161"},"nativeSrc":"38753:39:161","nodeType":"YulFunctionCall","src":"38753:39:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"38737:12:161","nodeType":"YulIdentifier","src":"38737:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78527,"isOffset":true,"isSlot":false,"src":"38775:15:161","suffix":"offset","valueSize":1},{"declaration":78540,"isOffset":false,"isSlot":false,"src":"38737:12:161","valueSize":1}],"flags":["memory-safe"],"id":78542,"nodeType":"InlineAssembly","src":"38552:250:161"},{"condition":{"id":78551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38816:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78543,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"38818:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38834:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"38818:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78546,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"38839:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38855:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"38839:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38818:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78550,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38817:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78554,"nodeType":"IfStatement","src":"38812:78:161","trueBody":{"id":78553,"nodeType":"Block","src":"38859:31:161","statements":[{"functionReturnParameters":78529,"id":78552,"nodeType":"Return","src":"38873:7:161"}]}},{"assignments":[78556],"declarations":[{"constant":false,"id":78556,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"38908:19:161","nodeType":"VariableDeclaration","scope":78714,"src":"38900:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78555,"name":"uint256","nodeType":"ElementaryTypeName","src":"38900:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78557,"nodeType":"VariableDeclarationStatement","src":"38900:27:161"},{"id":78566,"nodeType":"UncheckedBlock","src":"38937:78:161","statements":[{"expression":{"id":78564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78558,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78556,"src":"38961:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38983:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78560,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"38987:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39002:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"38987:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38983:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38961:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78565,"nodeType":"ExpressionStatement","src":"38961:43:161"}]},{"condition":{"id":78572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"39029:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78567,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78527,"src":"39031:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39040:6:161","memberName":"length","nodeType":"MemberAccess","src":"39031:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78569,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78556,"src":"39050:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39031:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78571,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39030:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78575,"nodeType":"IfStatement","src":"39025:78:161","trueBody":{"id":78574,"nodeType":"Block","src":"39072:31:161","statements":[{"functionReturnParameters":78529,"id":78573,"nodeType":"Return","src":"39086:7:161"}]}},{"assignments":[78578],"declarations":[{"constant":false,"id":78578,"mutability":"mutable","name":"topic1","nameLocation":"39206:6:161","nodeType":"VariableDeclaration","scope":78714,"src":"39198:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39198:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":78579,"nodeType":"VariableDeclarationStatement","src":"39198:14:161"},{"AST":{"nativeSrc":"39247:71:161","nodeType":"YulBlock","src":"39247:71:161","statements":[{"nativeSrc":"39261:47:161","nodeType":"YulAssignment","src":"39261:47:161","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"39288:15:161","nodeType":"YulIdentifier","src":"39288:15:161"},{"kind":"number","nativeSrc":"39305:1:161","nodeType":"YulLiteral","src":"39305:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39284:3:161","nodeType":"YulIdentifier","src":"39284:3:161"},"nativeSrc":"39284:23:161","nodeType":"YulFunctionCall","src":"39284:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"39271:12:161","nodeType":"YulIdentifier","src":"39271:12:161"},"nativeSrc":"39271:37:161","nodeType":"YulFunctionCall","src":"39271:37:161"},"variableNames":[{"name":"topic1","nativeSrc":"39261:6:161","nodeType":"YulIdentifier","src":"39261:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78527,"isOffset":true,"isSlot":false,"src":"39288:15:161","suffix":"offset","valueSize":1},{"declaration":78578,"isOffset":false,"isSlot":false,"src":"39261:6:161","valueSize":1}],"flags":["memory-safe"],"id":78580,"nodeType":"InlineAssembly","src":"39222:96:161"},{"condition":{"id":78656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"39874:807:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78581,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"39889:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78582,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"39899:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39912:8:161","memberName":"selector","nodeType":"MemberAccess","src":"39899:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39889:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78585,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"39936:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78586,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"39946:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":78587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39971:8:161","memberName":"selector","nodeType":"MemberAccess","src":"39946:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39936:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78590,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"39995:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78591,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"40005:22:161","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":78592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40028:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40005:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39995:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78595,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40052:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78596,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"40062:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40085:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40062:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40052:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78600,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40109:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78601,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"40119:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40146:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40119:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40109:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78605,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40170:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78606,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"40180:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40212:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40180:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40170:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78610,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40236:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78611,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"40246:7:161","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":78612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40254:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40246:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40236:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78615,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40278:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78616,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"40288:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40306:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40288:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40278:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78620,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40330:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78621,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"40340:5:161","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":78622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40346:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40340:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40330:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78625,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40370:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78626,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"40380:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40396:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40380:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40370:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78630,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40420:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78631,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"40430:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40443:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40430:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40420:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78635,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40467:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78636,"name":"GearEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74234,"src":"40477:9:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory)"}},"id":78637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40487:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40477:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40467:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:606:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78640,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40511:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78641,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74241,"src":"40521:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40558:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40521:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40511:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:677:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78645,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40582:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78646,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74248,"src":"40592:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40612:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40592:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40582:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:731:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78650,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"40636:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78651,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74255,"src":"40646:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40663:8:161","memberName":"selector","nodeType":"MemberAccess","src":"40646:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40636:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39889:782:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78655,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39875:806:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":78659,"nodeType":"IfStatement","src":"39870:844:161","trueBody":{"id":78658,"nodeType":"Block","src":"40683:31:161","statements":[{"functionReturnParameters":78529,"id":78657,"nodeType":"Return","src":"40697:7:161"}]}},{"assignments":[78661],"declarations":[{"constant":false,"id":78661,"mutability":"mutable","name":"size","nameLocation":"40765:4:161","nodeType":"VariableDeclaration","scope":78714,"src":"40757:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78660,"name":"uint256","nodeType":"ElementaryTypeName","src":"40757:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78662,"nodeType":"VariableDeclarationStatement","src":"40757:12:161"},{"id":78670,"nodeType":"UncheckedBlock","src":"40779:79:161","statements":[{"expression":{"id":78668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78663,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"40803:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78664,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78527,"src":"40810:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40819:6:161","memberName":"length","nodeType":"MemberAccess","src":"40810:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78666,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78556,"src":"40828:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40810:37:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40803:44:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78669,"nodeType":"ExpressionStatement","src":"40803:44:161"}]},{"assignments":[78672],"declarations":[{"constant":false,"id":78672,"mutability":"mutable","name":"memPtr","nameLocation":"40876:6:161","nodeType":"VariableDeclaration","scope":78714,"src":"40868:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78671,"name":"uint256","nodeType":"ElementaryTypeName","src":"40868:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78677,"initialValue":{"arguments":[{"id":78675,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"40901:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78673,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40885:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40892:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40885:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40885:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40868:38:161"},{"AST":{"nativeSrc":"40941:93:161","nodeType":"YulBlock","src":"40941:93:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"40968:6:161","nodeType":"YulIdentifier","src":"40968:6:161"},{"arguments":[{"name":"_payload.offset","nativeSrc":"40980:15:161","nodeType":"YulIdentifier","src":"40980:15:161"},{"name":"topicsLengthInBytes","nativeSrc":"40997:19:161","nodeType":"YulIdentifier","src":"40997:19:161"}],"functionName":{"name":"add","nativeSrc":"40976:3:161","nodeType":"YulIdentifier","src":"40976:3:161"},"nativeSrc":"40976:41:161","nodeType":"YulFunctionCall","src":"40976:41:161"},{"name":"size","nativeSrc":"41019:4:161","nodeType":"YulIdentifier","src":"41019:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"40955:12:161","nodeType":"YulIdentifier","src":"40955:12:161"},"nativeSrc":"40955:69:161","nodeType":"YulFunctionCall","src":"40955:69:161"},"nativeSrc":"40955:69:161","nodeType":"YulExpressionStatement","src":"40955:69:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78527,"isOffset":true,"isSlot":false,"src":"40980:15:161","suffix":"offset","valueSize":1},{"declaration":78672,"isOffset":false,"isSlot":false,"src":"40968:6:161","valueSize":1},{"declaration":78661,"isOffset":false,"isSlot":false,"src":"41019:4:161","valueSize":1},{"declaration":78556,"isOffset":false,"isSlot":false,"src":"40997:19:161","valueSize":1}],"flags":["memory-safe"],"id":78678,"nodeType":"InlineAssembly","src":"40916:118:161"},{"assignments":[78681],"declarations":[{"constant":false,"id":78681,"mutability":"mutable","name":"topic2","nameLocation":"41189:6:161","nodeType":"VariableDeclaration","scope":78714,"src":"41181:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41181:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`.\n Regular offsets: `32`, `64`, `96`.","id":78682,"nodeType":"VariableDeclarationStatement","src":"41181:14:161"},{"assignments":[78684],"declarations":[{"constant":false,"id":78684,"mutability":"mutable","name":"topic3","nameLocation":"41213:6:161","nodeType":"VariableDeclaration","scope":78714,"src":"41205:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41205:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78685,"nodeType":"VariableDeclarationStatement","src":"41205:14:161"},{"assignments":[78687],"declarations":[{"constant":false,"id":78687,"mutability":"mutable","name":"topic4","nameLocation":"41237:6:161","nodeType":"VariableDeclaration","scope":78714,"src":"41229:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41229:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78688,"nodeType":"VariableDeclarationStatement","src":"41229:14:161"},{"AST":{"nativeSrc":"41278:194:161","nodeType":"YulBlock","src":"41278:194:161","statements":[{"nativeSrc":"41292:48:161","nodeType":"YulAssignment","src":"41292:48:161","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"41319:15:161","nodeType":"YulIdentifier","src":"41319:15:161"},{"kind":"number","nativeSrc":"41336:2:161","nodeType":"YulLiteral","src":"41336:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"41315:3:161","nodeType":"YulIdentifier","src":"41315:3:161"},"nativeSrc":"41315:24:161","nodeType":"YulFunctionCall","src":"41315:24:161"}],"functionName":{"name":"calldataload","nativeSrc":"41302:12:161","nodeType":"YulIdentifier","src":"41302:12:161"},"nativeSrc":"41302:38:161","nodeType":"YulFunctionCall","src":"41302:38:161"},"variableNames":[{"name":"topic2","nativeSrc":"41292:6:161","nodeType":"YulIdentifier","src":"41292:6:161"}]},{"nativeSrc":"41353:48:161","nodeType":"YulAssignment","src":"41353:48:161","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"41380:15:161","nodeType":"YulIdentifier","src":"41380:15:161"},{"kind":"number","nativeSrc":"41397:2:161","nodeType":"YulLiteral","src":"41397:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"41376:3:161","nodeType":"YulIdentifier","src":"41376:3:161"},"nativeSrc":"41376:24:161","nodeType":"YulFunctionCall","src":"41376:24:161"}],"functionName":{"name":"calldataload","nativeSrc":"41363:12:161","nodeType":"YulIdentifier","src":"41363:12:161"},"nativeSrc":"41363:38:161","nodeType":"YulFunctionCall","src":"41363:38:161"},"variableNames":[{"name":"topic3","nativeSrc":"41353:6:161","nodeType":"YulIdentifier","src":"41353:6:161"}]},{"nativeSrc":"41414:48:161","nodeType":"YulAssignment","src":"41414:48:161","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"41441:15:161","nodeType":"YulIdentifier","src":"41441:15:161"},{"kind":"number","nativeSrc":"41458:2:161","nodeType":"YulLiteral","src":"41458:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"41437:3:161","nodeType":"YulIdentifier","src":"41437:3:161"},"nativeSrc":"41437:24:161","nodeType":"YulFunctionCall","src":"41437:24:161"}],"functionName":{"name":"calldataload","nativeSrc":"41424:12:161","nodeType":"YulIdentifier","src":"41424:12:161"},"nativeSrc":"41424:38:161","nodeType":"YulFunctionCall","src":"41424:38:161"},"variableNames":[{"name":"topic4","nativeSrc":"41414:6:161","nodeType":"YulIdentifier","src":"41414:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78527,"isOffset":true,"isSlot":false,"src":"41319:15:161","suffix":"offset","valueSize":1},{"declaration":78527,"isOffset":true,"isSlot":false,"src":"41380:15:161","suffix":"offset","valueSize":1},{"declaration":78527,"isOffset":true,"isSlot":false,"src":"41441:15:161","suffix":"offset","valueSize":1},{"declaration":78681,"isOffset":false,"isSlot":false,"src":"41292:6:161","valueSize":1},{"declaration":78684,"isOffset":false,"isSlot":false,"src":"41353:6:161","valueSize":1},{"declaration":78687,"isOffset":false,"isSlot":false,"src":"41414:6:161","valueSize":1}],"flags":["memory-safe"],"id":78689,"nodeType":"InlineAssembly","src":"41253:219:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78690,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"41486:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41502:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"41486:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78695,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"41622:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41638:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"41622:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78700,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"41766:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41782:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"41766:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78705,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"41918:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41934:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"41918:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78710,"nodeType":"IfStatement","src":"41914:154:161","trueBody":{"id":78709,"nodeType":"Block","src":"41937:131:161","statements":[{"AST":{"nativeSrc":"41976:82:161","nodeType":"YulBlock","src":"41976:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41999:6:161","nodeType":"YulIdentifier","src":"41999:6:161"},{"name":"size","nativeSrc":"42007:4:161","nodeType":"YulIdentifier","src":"42007:4:161"},{"name":"topic1","nativeSrc":"42013:6:161","nodeType":"YulIdentifier","src":"42013:6:161"},{"name":"topic2","nativeSrc":"42021:6:161","nodeType":"YulIdentifier","src":"42021:6:161"},{"name":"topic3","nativeSrc":"42029:6:161","nodeType":"YulIdentifier","src":"42029:6:161"},{"name":"topic4","nativeSrc":"42037:6:161","nodeType":"YulIdentifier","src":"42037:6:161"}],"functionName":{"name":"log4","nativeSrc":"41994:4:161","nodeType":"YulIdentifier","src":"41994:4:161"},"nativeSrc":"41994:50:161","nodeType":"YulFunctionCall","src":"41994:50:161"},"nativeSrc":"41994:50:161","nodeType":"YulExpressionStatement","src":"41994:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78672,"isOffset":false,"isSlot":false,"src":"41999:6:161","valueSize":1},{"declaration":78661,"isOffset":false,"isSlot":false,"src":"42007:4:161","valueSize":1},{"declaration":78578,"isOffset":false,"isSlot":false,"src":"42013:6:161","valueSize":1},{"declaration":78681,"isOffset":false,"isSlot":false,"src":"42021:6:161","valueSize":1},{"declaration":78684,"isOffset":false,"isSlot":false,"src":"42029:6:161","valueSize":1},{"declaration":78687,"isOffset":false,"isSlot":false,"src":"42037:6:161","valueSize":1}],"flags":["memory-safe"],"id":78708,"nodeType":"InlineAssembly","src":"41951:107:161"}]}},"id":78711,"nodeType":"IfStatement","src":"41762:306:161","trueBody":{"id":78704,"nodeType":"Block","src":"41785:123:161","statements":[{"AST":{"nativeSrc":"41824:74:161","nodeType":"YulBlock","src":"41824:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41847:6:161","nodeType":"YulIdentifier","src":"41847:6:161"},{"name":"size","nativeSrc":"41855:4:161","nodeType":"YulIdentifier","src":"41855:4:161"},{"name":"topic1","nativeSrc":"41861:6:161","nodeType":"YulIdentifier","src":"41861:6:161"},{"name":"topic2","nativeSrc":"41869:6:161","nodeType":"YulIdentifier","src":"41869:6:161"},{"name":"topic3","nativeSrc":"41877:6:161","nodeType":"YulIdentifier","src":"41877:6:161"}],"functionName":{"name":"log3","nativeSrc":"41842:4:161","nodeType":"YulIdentifier","src":"41842:4:161"},"nativeSrc":"41842:42:161","nodeType":"YulFunctionCall","src":"41842:42:161"},"nativeSrc":"41842:42:161","nodeType":"YulExpressionStatement","src":"41842:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78672,"isOffset":false,"isSlot":false,"src":"41847:6:161","valueSize":1},{"declaration":78661,"isOffset":false,"isSlot":false,"src":"41855:4:161","valueSize":1},{"declaration":78578,"isOffset":false,"isSlot":false,"src":"41861:6:161","valueSize":1},{"declaration":78681,"isOffset":false,"isSlot":false,"src":"41869:6:161","valueSize":1},{"declaration":78684,"isOffset":false,"isSlot":false,"src":"41877:6:161","valueSize":1}],"flags":["memory-safe"],"id":78703,"nodeType":"InlineAssembly","src":"41799:99:161"}]}},"id":78712,"nodeType":"IfStatement","src":"41618:450:161","trueBody":{"id":78699,"nodeType":"Block","src":"41641:115:161","statements":[{"AST":{"nativeSrc":"41680:66:161","nodeType":"YulBlock","src":"41680:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41703:6:161","nodeType":"YulIdentifier","src":"41703:6:161"},{"name":"size","nativeSrc":"41711:4:161","nodeType":"YulIdentifier","src":"41711:4:161"},{"name":"topic1","nativeSrc":"41717:6:161","nodeType":"YulIdentifier","src":"41717:6:161"},{"name":"topic2","nativeSrc":"41725:6:161","nodeType":"YulIdentifier","src":"41725:6:161"}],"functionName":{"name":"log2","nativeSrc":"41698:4:161","nodeType":"YulIdentifier","src":"41698:4:161"},"nativeSrc":"41698:34:161","nodeType":"YulFunctionCall","src":"41698:34:161"},"nativeSrc":"41698:34:161","nodeType":"YulExpressionStatement","src":"41698:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78672,"isOffset":false,"isSlot":false,"src":"41703:6:161","valueSize":1},{"declaration":78661,"isOffset":false,"isSlot":false,"src":"41711:4:161","valueSize":1},{"declaration":78578,"isOffset":false,"isSlot":false,"src":"41717:6:161","valueSize":1},{"declaration":78681,"isOffset":false,"isSlot":false,"src":"41725:6:161","valueSize":1}],"flags":["memory-safe"],"id":78698,"nodeType":"InlineAssembly","src":"41655:91:161"}]}},"id":78713,"nodeType":"IfStatement","src":"41482:586:161","trueBody":{"id":78694,"nodeType":"Block","src":"41505:107:161","statements":[{"AST":{"nativeSrc":"41544:58:161","nodeType":"YulBlock","src":"41544:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41567:6:161","nodeType":"YulIdentifier","src":"41567:6:161"},{"name":"size","nativeSrc":"41575:4:161","nodeType":"YulIdentifier","src":"41575:4:161"},{"name":"topic1","nativeSrc":"41581:6:161","nodeType":"YulIdentifier","src":"41581:6:161"}],"functionName":{"name":"log1","nativeSrc":"41562:4:161","nodeType":"YulIdentifier","src":"41562:4:161"},"nativeSrc":"41562:26:161","nodeType":"YulFunctionCall","src":"41562:26:161"},"nativeSrc":"41562:26:161","nodeType":"YulExpressionStatement","src":"41562:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78672,"isOffset":false,"isSlot":false,"src":"41567:6:161","valueSize":1},{"declaration":78661,"isOffset":false,"isSlot":false,"src":"41575:4:161","valueSize":1},{"declaration":78578,"isOffset":false,"isSlot":false,"src":"41581:6:161","valueSize":1}],"flags":["memory-safe"],"id":78693,"nodeType":"InlineAssembly","src":"41519:83:161"}]}}]},"documentation":{"id":78525,"nodeType":"StructuredDocumentation","src":"35411:2958:161","text":" @dev Tries to parse an event from the Sails framework and emit it in Solidity notation.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n Example of defining Solidity events in WASM contract based on Sails framework:\n ```rust\n #[event]\n #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)]\n #[codec(crate = scale_codec)]\n #[scale_info(crate = scale_info)]\n pub enum CounterEvents {\n Added {\n #[indexed]\n source: ActorId,\n value: u32,\n },\n }\n ```\n User also generates \"Solidity ABI interface\" that allows services like Etherscan to decode events from `Mirror`\n (since we use the ABI interface as \"proxy implementation\"):\n ```solidity\n interface ICounter {\n event Added(address indexed source, uint32 value);\n // ... other events\n }\n ```\n Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event,\n which will then be emitted by `Mirror` smart contract as showed on services like Etherscan:\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n ```\n All the `emit_eth_event` method in the Sails framework does is call the syscall\n `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload`\n is encoded in Solidity notation as described below.\n Format in which the Sails framework sends events:\n - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`).\n specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called.\n - `bytes32 topic1` (required)\n should never match our event selectors!\n - `bytes32 topic2` (optional)\n - `bytes32 topic3` (optional)\n - `bytes32 topic4` (optional)\n - `bytes payload` (optional)\n contains encoded data of event in form of `abi.encode(...)`.\n @param _payload The payload to be parsed and emitted as Solidity event."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"38383:26:161","parameters":{"id":78528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78527,"mutability":"mutable","name":"_payload","nameLocation":"38425:8:161","nodeType":"VariableDeclaration","scope":78715,"src":"38410:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78526,"name":"bytes","nodeType":"ElementaryTypeName","src":"38410:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38409:25:161"},"returnParameters":{"id":78529,"nodeType":"ParameterList","parameters":[],"src":"38443:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78748,"nodeType":"FunctionDefinition","src":"42340:586:161","nodes":[],"body":{"id":78747,"nodeType":"Block","src":"42404:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78723,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77322,"src":"42469:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42478:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"42469:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78726,"nodeType":"ExpressionStatement","src":"42469:13:161"},{"expression":{"id":78729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78727,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77325,"src":"42492:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78728,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78718,"src":"42504:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42492:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78730,"nodeType":"ExpressionStatement","src":"42492:22:161"},{"assignments":[78732,78734],"declarations":[{"constant":false,"id":78732,"mutability":"mutable","name":"value","nameLocation":"42623:5:161","nodeType":"VariableDeclaration","scope":78747,"src":"42615:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78731,"name":"uint128","nodeType":"ElementaryTypeName","src":"42615:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78734,"mutability":"mutable","name":"success","nameLocation":"42635:7:161","nodeType":"VariableDeclaration","scope":78747,"src":"42630:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78733,"name":"bool","nodeType":"ElementaryTypeName","src":"42630:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":78737,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78735,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77978,"src":"42646:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42646:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"42614:65:161"},{"condition":{"id":78739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42693:8:161","subExpression":{"id":78738,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78734,"src":"42694:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78746,"nodeType":"IfStatement","src":"42689:231:161","trueBody":{"id":78745,"nodeType":"Block","src":"42703:217:161","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":78741,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78718,"src":"42891:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78742,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78732,"src":"42903:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78740,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74241,"src":"42854:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42854:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78744,"nodeType":"EmitStatement","src":"42849:60:161"}]}}]},"documentation":{"id":78716,"nodeType":"StructuredDocumentation","src":"42137:198:161","text":" @dev Sets the inheritor address, sets exited flag to `true` and\n transfer all available balance to the inheritor.\n @param _inheritor The address of the inheritor."},"implemented":true,"kind":"function","modifiers":[{"id":78721,"kind":"modifierInvocation","modifierName":{"id":78720,"name":"onlyIfActive","nameLocations":["42391:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77397,"src":"42391:12:161"},"nodeType":"ModifierInvocation","src":"42391:12:161"}],"name":"_setInheritor","nameLocation":"42349:13:161","parameters":{"id":78719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78718,"mutability":"mutable","name":"_inheritor","nameLocation":"42371:10:161","nodeType":"VariableDeclaration","scope":78748,"src":"42363:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78717,"name":"address","nodeType":"ElementaryTypeName","src":"42363:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42362:20:161"},"returnParameters":{"id":78722,"nodeType":"ParameterList","parameters":[],"src":"42404:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78763,"nodeType":"FunctionDefinition","src":"43029:281:161","nodes":[],"body":{"id":78762,"nodeType":"Block","src":"43083:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78754,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77316,"src":"43149:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78755,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78751,"src":"43161:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"43149:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78757,"nodeType":"ExpressionStatement","src":"43149:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78759,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77316,"src":"43293:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78758,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"43280:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43280:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78761,"nodeType":"EmitStatement","src":"43275:28:161"}]},"documentation":{"id":78749,"nodeType":"StructuredDocumentation","src":"42932:92:161","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"43038:16:161","parameters":{"id":78752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78751,"mutability":"mutable","name":"_stateHash","nameLocation":"43063:10:161","nodeType":"VariableDeclaration","scope":78763,"src":"43055:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43055:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43054:20:161"},"returnParameters":{"id":78753,"nodeType":"ParameterList","parameters":[],"src":"43083:0:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78785,"nodeType":"FunctionDefinition","src":"43484:182:161","nodes":[],"body":{"id":78784,"nodeType":"Block","src":"43556:110:161","nodes":[],"statements":[{"assignments":[78773],"declarations":[{"constant":false,"id":78773,"mutability":"mutable","name":"wvaraAddr","nameLocation":"43574:9:161","nodeType":"VariableDeclaration","scope":78784,"src":"43566:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78772,"name":"address","nodeType":"ElementaryTypeName","src":"43566:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78779,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78775,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78766,"src":"43594:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78774,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74995,"src":"43586:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74995_$","typeString":"type(contract IRouter)"}},"id":78776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43586:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74995","typeString":"contract IRouter"}},"id":78777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43606:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74689,"src":"43586:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43586:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43566:53:161"},{"expression":{"arguments":[{"id":78781,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78773,"src":"43649:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78780,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"43636:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":78782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43636:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"functionReturnParameters":78771,"id":78783,"nodeType":"Return","src":"43629:30:161"}]},"documentation":{"id":78764,"nodeType":"StructuredDocumentation","src":"43352:127:161","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"43493:6:161","parameters":{"id":78767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78766,"mutability":"mutable","name":"routerAddr","nameLocation":"43508:10:161","nodeType":"VariableDeclaration","scope":78785,"src":"43500:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78765,"name":"address","nodeType":"ElementaryTypeName","src":"43500:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43499:20:161"},"returnParameters":{"id":78771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78785,"src":"43542:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"},"typeName":{"id":78769,"nodeType":"UserDefinedTypeName","pathNode":{"id":78768,"name":"IWrappedVara","nameLocations":["43542:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75011,"src":"43542:12:161"},"referencedDeclaration":75011,"src":"43542:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"43541:14:161"},"scope":78877,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78815,"nodeType":"FunctionDefinition","src":"43908:253:161","nodes":[],"body":{"id":78814,"nodeType":"Block","src":"43991:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78795,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78790,"src":"44005:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44014:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44005:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78811,"nodeType":"IfStatement","src":"44001:133:161","trueBody":{"id":78810,"nodeType":"Block","src":"44017:117:161","statements":[{"assignments":[78799,null],"declarations":[{"constant":false,"id":78799,"mutability":"mutable","name":"success","nameLocation":"44037:7:161","nodeType":"VariableDeclaration","scope":78810,"src":"44032:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78798,"name":"bool","nodeType":"ElementaryTypeName","src":"44032:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78807,"initialValue":{"arguments":[{"hexValue":"","id":78805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44092:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":78800,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78788,"src":"44049:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44061:4:161","memberName":"call","nodeType":"MemberAccess","src":"44049:16:161","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":78804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44071:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":78803,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78790,"src":"44085:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"44049:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44049:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"44031:64:161"},{"expression":{"id":78808,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"44116:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78794,"id":78809,"nodeType":"Return","src":"44109:14:161"}]}},{"expression":{"hexValue":"74727565","id":78812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"44150:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78794,"id":78813,"nodeType":"Return","src":"44143:11:161"}]},"documentation":{"id":78786,"nodeType":"StructuredDocumentation","src":"43672:231:161","text":" @dev Transfer ETH to destination address.\n It has gas limit of 5_000 to prevent DoS attacks.\n @param destination The address to transfer ETH to.\n @param value The amount of ETH to transfer."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"43917:14:161","parameters":{"id":78791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78788,"mutability":"mutable","name":"destination","nameLocation":"43940:11:161","nodeType":"VariableDeclaration","scope":78815,"src":"43932:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78787,"name":"address","nodeType":"ElementaryTypeName","src":"43932:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78790,"mutability":"mutable","name":"value","nameLocation":"43961:5:161","nodeType":"VariableDeclaration","scope":78815,"src":"43953:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78789,"name":"uint128","nodeType":"ElementaryTypeName","src":"43953:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"43931:36:161"},"returnParameters":{"id":78794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78815,"src":"43985:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78792,"name":"bool","nodeType":"ElementaryTypeName","src":"43985:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43984:6:161"},"scope":78877,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78876,"nodeType":"FunctionDefinition","src":"44462:1106:161","nodes":[],"body":{"id":78875,"nodeType":"Block","src":"44504:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44518:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44522:5:161","memberName":"value","nodeType":"MemberAccess","src":"44518:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44530:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44518:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44535:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44539:4:161","memberName":"data","nodeType":"MemberAccess","src":"44535:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44544:6:161","memberName":"length","nodeType":"MemberAccess","src":"44535:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44554:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44535:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"44518:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"44679:8:161","subExpression":{"id":78844,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77331,"src":"44680:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78846,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44691:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44695:4:161","memberName":"data","nodeType":"MemberAccess","src":"44691:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44700:6:161","memberName":"length","nodeType":"MemberAccess","src":"44691:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":78849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44710:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"44691:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"44679:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78872,"nodeType":"Block","src":"45509:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78869,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74294,"src":"45530:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45530:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78871,"nodeType":"RevertStatement","src":"45523:28:161"}]},"id":78873,"nodeType":"IfStatement","src":"44675:887:161","trueBody":{"id":78868,"nodeType":"Block","src":"44716:787:161","statements":[{"assignments":[78854],"declarations":[{"constant":false,"id":78854,"mutability":"mutable","name":"callReply","nameLocation":"45179:9:161","nodeType":"VariableDeclaration","scope":78868,"src":"45171:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78853,"name":"uint256","nodeType":"ElementaryTypeName","src":"45171:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" @dev We only allow arbitrary calls to `!isSmall` `Mirror` contracts,\n which are more likely to come from their ABI interfaces.\n The minimum call data length is 0x24 (36 bytes) because:\n - 0x04 (4 bytes) for the function selector [0x00..0x04)\n - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24)","id":78855,"nodeType":"VariableDeclarationStatement","src":"45171:17:161"},{"AST":{"nativeSrc":"45228:63:161","nodeType":"YulBlock","src":"45228:63:161","statements":[{"nativeSrc":"45246:31:161","nodeType":"YulAssignment","src":"45246:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"45272:4:161","nodeType":"YulLiteral","src":"45272:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"45259:12:161","nodeType":"YulIdentifier","src":"45259:12:161"},"nativeSrc":"45259:18:161","nodeType":"YulFunctionCall","src":"45259:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"45246:9:161","nodeType":"YulIdentifier","src":"45246:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78854,"isOffset":false,"isSlot":false,"src":"45246:9:161","valueSize":1}],"flags":["memory-safe"],"id":78856,"nodeType":"InlineAssembly","src":"45203:88:161"},{"assignments":[78858],"declarations":[{"constant":false,"id":78858,"mutability":"mutable","name":"messageId","nameLocation":"45313:9:161","nodeType":"VariableDeclaration","scope":78868,"src":"45305:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45305:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78866,"initialValue":{"arguments":[{"expression":{"id":78860,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"45338:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45342:4:161","memberName":"data","nodeType":"MemberAccess","src":"45338:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78862,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78854,"src":"45348:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45361:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45348:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78859,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77945,"src":"45325:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":78865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45325:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"45305:58:161"},{"AST":{"nativeSrc":"45403:90:161","nodeType":"YulBlock","src":"45403:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45428:4:161","nodeType":"YulLiteral","src":"45428:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"45434:9:161","nodeType":"YulIdentifier","src":"45434:9:161"}],"functionName":{"name":"mstore","nativeSrc":"45421:6:161","nodeType":"YulIdentifier","src":"45421:6:161"},"nativeSrc":"45421:23:161","nodeType":"YulFunctionCall","src":"45421:23:161"},"nativeSrc":"45421:23:161","nodeType":"YulExpressionStatement","src":"45421:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45468:4:161","nodeType":"YulLiteral","src":"45468:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"45474:4:161","nodeType":"YulLiteral","src":"45474:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"45461:6:161","nodeType":"YulIdentifier","src":"45461:6:161"},"nativeSrc":"45461:18:161","nodeType":"YulFunctionCall","src":"45461:18:161"},"nativeSrc":"45461:18:161","nodeType":"YulExpressionStatement","src":"45461:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78858,"isOffset":false,"isSlot":false,"src":"45434:9:161","valueSize":1}],"flags":["memory-safe"],"id":78867,"nodeType":"InlineAssembly","src":"45378:115:161"}]}},"id":78874,"nodeType":"IfStatement","src":"44514:1048:161","trueBody":{"id":78843,"nodeType":"Block","src":"44557:112:161","statements":[{"assignments":[78832],"declarations":[{"constant":false,"id":78832,"mutability":"mutable","name":"value","nameLocation":"44579:5:161","nodeType":"VariableDeclaration","scope":78843,"src":"44571:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78831,"name":"uint128","nodeType":"ElementaryTypeName","src":"44571:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78838,"initialValue":{"arguments":[{"expression":{"id":78835,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"44595:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44599:5:161","memberName":"value","nodeType":"MemberAccess","src":"44595:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44587:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78833,"name":"uint128","nodeType":"ElementaryTypeName","src":"44587:7:161","typeDescriptions":{}}},"id":78837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44587:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"44571:34:161"},{"eventCall":{"arguments":[{"id":78840,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78832,"src":"44652:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78839,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"44625:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44625:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78842,"nodeType":"EmitStatement","src":"44620:38:161"}]}}]},"documentation":{"id":78816,"nodeType":"StructuredDocumentation","src":"44167:290:161","text":" @dev Fallback function for top-up owned balance in native currency (ETH)\n and for sending arbitrary calls to `!isSmall` `Mirror` contracts\n as messages to Sails framework.\n See the description of `Mirror.isSmall` field for details."},"implemented":true,"kind":"fallback","modifiers":[{"id":78819,"kind":"modifierInvocation","modifierName":{"id":78818,"name":"whenNotPaused","nameLocations":["44490:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77458,"src":"44490:13:161"},"nodeType":"ModifierInvocation","src":"44490:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78817,"nodeType":"ParameterList","parameters":[],"src":"44470:2:161"},"returnParameters":{"id":78820,"nodeType":"ParameterList","parameters":[],"src":"44504:0:161"},"scope":78877,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77305,"name":"IMirror","nameLocations":["2640:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74400,"src":"2640:7:161"},"id":77306,"nodeType":"InheritanceSpecifier","src":"2640:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77304,"nodeType":"StructuredDocumentation","src":"621:1999:161","text":" @dev Mirror smart contract is responsible for storing the minimal state of programs on our platform\n and transitioning from one state to another by calling `performStateTransition(...)`. It's built\n on actor-model architecture, and in Ethereum, we implement this through \"request-response\" model.\n This means we have two types of events:\n - \"Requested\" events - when user calls one of the methods marked as \"Primary Gear logic\" we emit such an event,\n and all our nodes process it off-chain\n - \"Responded\" events - when we receive response from our nodes and transmit it back to Ethereum.\n All logic called within `performStateTransition(...)` and leading to methods marked as\n \"Private calls related to performStateTransition\" are such events.\n It's important not to confuse these two, as this is how we implement the actor model in Ethereum.\n Mirror economic model has two balances:\n - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`.\n This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`.\n - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain.\n It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform.\n You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the\n Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users\n can use it for free. This is called the \"reverse-gas model\". Developer can also require the presence of `value` in\n the owned balance when calling methods in a WASM smart contract to protect their program from spam."},"fullyImplemented":true,"linearizedBaseContracts":[78877,74400],"name":"Mirror","nameLocation":"2630:6:161","scope":78878,"usedErrors":[74258,74261,74264,74267,74270,74273,74276,74279,74282,74284,74286,74288,74290,74292,74294],"usedEvents":[74141,74154,74165,74172,74177,74182,74193,74202,74213,74222,74229,74234,74241,74248,74255]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":161} \ No newline at end of file diff --git a/ethexe/ethereum/abi/POAMiddleware.json b/ethexe/ethereum/abi/POAMiddleware.json index 854fe421aca..7e81a64f17c 100644 --- a/ethexe/ethereum/abi/POAMiddleware.json +++ b/ethexe/ethereum/abi/POAMiddleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"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":"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":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;805:6592:164;;7983:34:30;7979:146;;-1:-1:-1;805:6592:164;;;;;;;;1052:13:60;805:6592:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;8085:29:30;;805:6592:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;805:6592:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;805:6592;4535:25;;;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;2985:17;;805:6592;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2357:1:29;805:6592:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;805:6592:164;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;;;;;;;805:6592;4535:25;;805:6592;;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;4535:25;;;;805:6592;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;4301:16:30;805:6592:164;;4724:16:30;;:34;;;;805:6592:164;4803:1:30;4788:16;:50;;;;805:6592:164;4853:13:30;:30;;;;805:6592:164;4849:91:30;;;805:6592:164;4803:1:30;-1:-1:-1;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7075:37:164;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7075:37:164;-1:-1:-1;;;;;;;;;;;1106:66:164;;;1806:14;805:6592;;-1:-1:-1;;;;;805:6592:164;;;;;;1795:8;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5064:101:30;;805:6592:164;5064:101:30;-1:-1:-1;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;;;;;;805:6592:164;5140:14:30;805:6592:164;;;4803:1:30;805:6592:164;;5140:14:30;805:6592:164;4977:67:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;4849:91;6496:23;;;805:6592:164;4906:23:30;805:6592:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;805:6592:164;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1333:66:164;805:6592;;;;-1:-1:-1;;;;;805:6592:164;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;805:6592:164;;3975:40:29;805:6592:164;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;1333:66;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;-1:-1:-1;805:6592:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;6429:44:30;;;;;805:6592:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;6959:1:30;;-1:-1:-1;;;;;805:6592:164;6891:76:30;;:::i;6959:1::-;6654:20;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;2249:17;7075:37;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7075:37:164:-;1106:66;;-1:-1:-1;;;;;;;;;;;1106:66:164;7284:37;805:6592;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;2303:62:29;;:::i;7284:37:164:-;1333:66;1106;2249:17;;805:6592;2229:17;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;1955:1;805:6592;;6654:20:30;805:6592:164;6429:44:30;1955:1:164;805:6592;;-1:-1:-1;;;;;805:6592:164;6448:25:30;;6429:44;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;4824:6:60;-1:-1:-1;;;;;805:6592:164;4815:4:60;4807:23;4803:145;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;4803:145:60;4578:29;;;805:6592:164;4908:29:60;805:6592:164;;4908:29:60;805:6592:164;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;805:6592:164;4392:4:60;4384:23;;;:120;;;;805:6592:164;4367:251:60;;;2303:62:29;;:::i;:::-;805:6592:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5865:52:60;;805:6592:164;;5865:52:60;;;805:6592:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;805:6592:164;6227:60:60;805:6592:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;805:6592:164;;2458:15:53;:11;;805:6592:164;4065:25:66;;4107:55;4065:25;;;;;;805:6592:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;805:6592:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;805:6592:164;6159:70:53;6199:19;;;805:6592:164;6199:19:53;805:6592:164;;6199:19:53;1744:119;1805:47;;;805:6592:164;1805:47:53;805:6592:164;;;;1805:47:53;5955:120:60;6026:34;;;805:6592:164;6026:34:60;805:6592:164;;;;6026:34:60;5865:52;;;;805:6592:164;5865:52:60;;805:6592:164;5865:52:60;;;;;;805:6592:164;5865:52:60;;;:::i;:::-;;;805:6592:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;;;;:::o;5424:95::-;805:6592;;-1:-1:-1;;;5487:25:164;;805:6592;5487:25;;;805:6592;;;;;;-1:-1:-1;;;805:6592:164;;;;;;4535:25;3405:215:29;-1:-1:-1;;;;;805:6592:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;805:6592:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;805:6592:164;;-1:-1:-1;2763:40:29;7082:141:30;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;805:6592:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;805:6592:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;805:6592:164;;;;4933:24:66;805:6592:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"setValidators(address[])\":{\"details\":\"Sets validators for POA middleware.\",\"params\":{\"validators\":\"The addresses of validators to set.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9\",\"dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75\",\"dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"setValidators(address[])":{"details":"Sets validators for POA middleware.","params":{"validators":"The addresses of validators to set."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819","urls":["bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9","dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab","urls":["bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75","dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":79428,"exportedSymbols":{"Gear":[84099],"IMiddleware":[74131],"IPOAMiddleware":[74411],"MapWithTimeData":[84387],"OwnableUpgradeable":[42322],"POAMiddleware":[79427],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":78847,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78849,"nodeType":"ImportDirective","src":"100:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":78848,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78851,"nodeType":"ImportDirective","src":"202:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":78850,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78853,"nodeType":"ImportDirective","src":"343:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":78852,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78855,"nodeType":"ImportDirective","src":"432:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":78854,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78857,"nodeType":"ImportDirective","src":"513:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":78856,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78859,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":78858,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78861,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":74412,"symbolAliases":[{"foreign":{"id":78860,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74411,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78863,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":78862,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78865,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":84388,"symbolAliases":[{"foreign":{"id":78864,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84387,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79427,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":78878,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":78877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1106:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":78881,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":78880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":78889,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":78888,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78885,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78887,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":78882,"nodeType":"StructuredDocumentation","src":"1406:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78883,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":78884,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78923,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":78922,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78898,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78892,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1634:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"1626:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78897,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1611:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78901,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78902,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78904,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":78906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":78905,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79402,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78908,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[78911],"declarations":[{"constant":false,"id":78911,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":78922,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78910,"nodeType":"UserDefinedTypeName","pathNode":{"id":78909,"name":"Storage","nameLocations":["1754:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"1754:7:164"},"referencedDeclaration":73928,"src":"1754:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78914,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78912,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"1774:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1754:30:164"},{"expression":{"id":78920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78915,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78911,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"1795:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78918,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78892,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"1806:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1795:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78921,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":78895,"kind":"modifierInvocation","modifierName":{"id":78894,"name":"initializer","nameLocations":["1589:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"1589:11:164"},"nodeType":"ModifierInvocation","src":"1589:11:164"}],"name":"initialize","nameLocation":"1542:10:164","parameters":{"id":78893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78892,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":78923,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":78891,"nodeType":"UserDefinedTypeName","pathNode":{"id":78890,"name":"InitParams","nameLocations":["1553:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"1553:10:164"},"referencedDeclaration":73890,"src":"1553:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1552:29:164"},"returnParameters":{"id":78896,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78965,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":78964,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"1983:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78932,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1968:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78936,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[78939],"declarations":[{"constant":false,"id":78939,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":78964,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78938,"nodeType":"UserDefinedTypeName","pathNode":{"id":78937,"name":"Storage","nameLocations":["2002:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2002:7:164"},"referencedDeclaration":73928,"src":"2002:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78942,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78940,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2031:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2031:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2002:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":78944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2068:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":78943,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79402,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78946,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":78948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":78947,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79426,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2112:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78950,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[78953],"declarations":[{"constant":false,"id":78953,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":78964,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78952,"nodeType":"UserDefinedTypeName","pathNode":{"id":78951,"name":"Storage","nameLocations":["2179:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2179:7:164"},"referencedDeclaration":73928,"src":"2179:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78956,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78954,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2208:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2179:39:164"},{"expression":{"id":78962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78957,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78953,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2240:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2229:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78960,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78939,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2249:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2229:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78963,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":78924,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78927,"kind":"modifierInvocation","modifierName":{"id":78926,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":78929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1955:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78930,"kind":"modifierInvocation","modifierName":{"id":78928,"name":"reinitializer","nameLocations":["1941:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"1941:13:164"},"nodeType":"ModifierInvocation","src":"1941:16:164"}],"name":"reinitialize","nameLocation":"1909:12:164","parameters":{"id":78925,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":78931,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78975,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":78974,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":78966,"nodeType":"StructuredDocumentation","src":"2279:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78972,"kind":"modifierInvocation","modifierName":{"id":78971,"name":"onlyOwner","nameLocations":["2510:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2510:9:164"},"nodeType":"ModifierInvocation","src":"2510:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2447:17:164","overrides":{"id":78970,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":78969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78968,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":78975,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78967,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":78973,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78991,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":78990,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":78988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78984,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79354,"src":"2734:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":78985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":78986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2734:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78987,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78979,"src":"2760:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2734:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":78989,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74410],"documentation":{"id":78976,"nodeType":"StructuredDocumentation","src":"2528:120:164","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":78982,"kind":"modifierInvocation","modifierName":{"id":78981,"name":"onlyOwner","nameLocations":["2714:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2714:9:164"},"nodeType":"ModifierInvocation","src":"2714:9:164"}],"name":"setValidators","nameLocation":"2662:13:164","parameters":{"id":78980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78979,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":78991,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78977,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78978,"nodeType":"ArrayTypeName","src":"2676:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2675:29:164"},"returnParameters":{"id":78983,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79006,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79005,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79001,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79354,"src":"2882:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2882:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79000,"id":79004,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":78996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78992,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":79000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78997,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78998,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79016,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79015,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79011,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2985:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2985:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79010,"id":79014,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79007,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79016,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79008,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79026,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79025,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79021,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79024,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79017,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79026,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79018,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79036,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79035,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79031,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3340:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79034,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79027,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79036,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79028,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79046,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79045,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79041,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3448:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3448:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79044,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79037,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79046,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79038,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79056,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79055,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3560:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79051,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3553:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79054,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79047,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79056,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79048,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79066,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79065,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3664:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79061,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3657:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79064,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79057,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79066,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79058,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79076,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79075,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79071,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3768:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79074,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79067,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79076,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79068,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79086,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79085,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3890:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79081,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3883:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79084,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79077,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79086,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79078,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79096,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79095,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4002:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79091,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3995:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79094,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79087,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79096,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79088,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79106,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79105,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4110:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79101,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4103:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79104,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79097,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79106,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79098,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79116,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79115,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4210:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79111,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4203:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79114,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79107,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79116,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79108,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79126,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79125,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4310:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79121,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4303:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4303:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79124,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79117,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79126,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79136,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79135,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4411:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79131,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4404:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79134,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79127,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79136,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79128,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79147,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79146,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4542:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79142,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4535:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79145,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79137,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79147,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79139,"nodeType":"UserDefinedTypeName","pathNode":{"id":79138,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83229,"src":"4493:23:164"},"referencedDeclaration":83229,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79155,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79154,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4629:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79150,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4622:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79153,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79148,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79149,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79163,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79162,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4715:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79158,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4708:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79161,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79156,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79157,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79173,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79172,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79168,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4807:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79171,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79173,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79164,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79167,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79183,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79182,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79178,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4905:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4905:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79181,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79183,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79174,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79177,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79191,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79190,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5000:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79186,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4993:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79189,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79184,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79185,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79201,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79200,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79196,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5090:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79199,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79201,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79192,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79195,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79217,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79216,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79212,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79215,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79202,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79204,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79232,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79231,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5393:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79227,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5386:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79230,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79219,"nodeType":"UserDefinedTypeName","pathNode":{"id":79218,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"5301:28:164"},"referencedDeclaration":83046,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79221,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79244,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79243,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5494:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79239,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5487:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79242,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79244,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79233,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79244,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79235,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79238,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79254,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79253,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5585:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79249,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5578:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79252,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79254,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79245,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79248,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79264,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79263,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79259,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5668:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5668:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79262,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79264,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79255,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79258,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79274,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79273,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5769:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79269,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5762:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79272,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79274,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79265,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79268,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79288,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79287,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5892:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79283,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5885:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5885:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79286,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79275,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79277,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79280,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79304,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79303,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6040:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79299,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6033:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6033:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79302,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79289,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79292,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79293,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79295,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79296,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79316,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79315,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6144:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79311,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6137:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79314,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79316,"src":"6093:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79306,"nodeType":"UserDefinedTypeName","pathNode":{"id":79305,"name":"SlashData","nameLocations":["6093:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"6093:9:164"},"referencedDeclaration":73942,"src":"6093:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79307,"nodeType":"ArrayTypeName","src":"6093:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6092:22:164"},"returnParameters":{"id":79310,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79328,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79327,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6254:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79323,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6247:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79326,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79328,"src":"6197:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79318,"nodeType":"UserDefinedTypeName","pathNode":{"id":79317,"name":"SlashIdentifier","nameLocations":["6197:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"6197:15:164"},"referencedDeclaration":73947,"src":"6197:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79319,"nodeType":"ArrayTypeName","src":"6197:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6196:28:164"},"returnParameters":{"id":79322,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79341,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79340,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79335],"declarations":[{"constant":false,"id":79335,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79340,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79336,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79366,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6365:32:164"},{"AST":{"nativeSrc":"6433:47:164","nodeType":"YulBlock","src":"6433:47:164","statements":[{"nativeSrc":"6447:23:164","nodeType":"YulAssignment","src":"6447:23:164","value":{"name":"slot","nativeSrc":"6466:4:164","nodeType":"YulIdentifier","src":"6466:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6447:15:164","nodeType":"YulIdentifier","src":"6447:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79332,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79335,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79339,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79329,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79332,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79341,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79331,"nodeType":"UserDefinedTypeName","pathNode":{"id":79330,"name":"Storage","nameLocations":["6327:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"6327:7:164"},"referencedDeclaration":73928,"src":"6327:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6326:28:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79354,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79353,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79348],"declarations":[{"constant":false,"id":79348,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79353,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79349,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79378,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6578:35:164"},{"AST":{"nativeSrc":"6648:47:164","nodeType":"YulBlock","src":"6648:47:164","statements":[{"nativeSrc":"6662:23:164","nodeType":"YulAssignment","src":"6662:23:164","value":{"name":"slot","nativeSrc":"6681:4:164","nodeType":"YulIdentifier","src":"6681:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6662:15:164","nodeType":"YulIdentifier","src":"6662:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79345,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79348,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79352,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79342,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79345,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79354,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79344,"nodeType":"UserDefinedTypeName","pathNode":{"id":79343,"name":"POAStorage","nameLocations":["6537:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":74403,"src":"6537:10:164"},"referencedDeclaration":74403,"src":"6537:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6536:31:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79366,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79365,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79361,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78878,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79359,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6794:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6782:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6823:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6782:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79358,"id":79364,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79355,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79366,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79378,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79377,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79373,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78881,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79371,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6931:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6919:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6919:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6919:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79370,"id":79376,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79367,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79378,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79402,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79401,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79386],"declarations":[{"constant":false,"id":79386,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79401,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79391,"initialValue":{"arguments":[{"id":79389,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79380,"src":"7102:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79387,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7090:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7075:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7075:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7060:52:164"},{"expression":{"id":79399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79395,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78878,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79392,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7134:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7122:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7122:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7163:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7122:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79398,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79386,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79400,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79383,"kind":"modifierInvocation","modifierName":{"id":79382,"name":"onlyOwner","nameLocations":["7040:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7040:9:164"},"nodeType":"ModifierInvocation","src":"7040:9:164"}],"name":"_setStorageSlot","nameLocation":"6991:15:164","parameters":{"id":79381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79380,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79402,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79379,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79384,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79426,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79425,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79410],"declarations":[{"constant":false,"id":79410,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79425,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79415,"initialValue":{"arguments":[{"id":79413,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79404,"src":"7311:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79411,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7299:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7284:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7284:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7269:52:164"},{"expression":{"id":79423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79419,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78881,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79416,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7343:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7331:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7376:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7331:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79422,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79410,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79424,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79407,"kind":"modifierInvocation","modifierName":{"id":79406,"name":"onlyOwner","nameLocations":["7249:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7249:9:164"},"nodeType":"ModifierInvocation","src":"7249:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7197:18:164","parameters":{"id":79405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79404,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79426,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79403,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79408,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78866,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":78867,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":78868,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74411,"src":"852:14:164"},"id":78869,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":78870,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":78871,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":78872,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":78873,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":78874,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":78875,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79427,46243,44833,43943,42322,43484,42590,74411,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79428,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":164} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"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":"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":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;805:6592:164;;7983:34:30;7979:146;;-1:-1:-1;805:6592:164;;;;;;;;1052:13:60;805:6592:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;8085:29:30;;805:6592:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;805:6592:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;805:6592;4535:25;;;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;2985:17;;805:6592;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2357:1:29;805:6592:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;805:6592:164;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;;;;;;;805:6592;4535:25;;805:6592;;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;4535:25;;;;805:6592;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;4301:16:30;805:6592:164;;4724:16:30;;:34;;;;805:6592:164;4803:1:30;4788:16;:50;;;;805:6592:164;4853:13:30;:30;;;;805:6592:164;4849:91:30;;;805:6592:164;4803:1:30;-1:-1:-1;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7075:37:164;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7075:37:164;-1:-1:-1;;;;;;;;;;;1106:66:164;;;1806:14;805:6592;;-1:-1:-1;;;;;805:6592:164;;;;;;1795:8;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5064:101:30;;805:6592:164;5064:101:30;-1:-1:-1;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;;;;;;805:6592:164;5140:14:30;805:6592:164;;;4803:1:30;805:6592:164;;5140:14:30;805:6592:164;4977:67:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;4849:91;6496:23;;;805:6592:164;4906:23:30;805:6592:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;805:6592:164;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1333:66:164;805:6592;;;;-1:-1:-1;;;;;805:6592:164;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;805:6592:164;;3975:40:29;805:6592:164;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;1333:66;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;-1:-1:-1;805:6592:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;6429:44:30;;;;;805:6592:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;6959:1:30;;-1:-1:-1;;;;;805:6592:164;6891:76:30;;:::i;6959:1::-;6654:20;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;2249:17;7075:37;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7075:37:164:-;1106:66;;-1:-1:-1;;;;;;;;;;;1106:66:164;7284:37;805:6592;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;2303:62:29;;:::i;7284:37:164:-;1333:66;1106;2249:17;;805:6592;2229:17;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;1955:1;805:6592;;6654:20:30;805:6592:164;6429:44:30;1955:1:164;805:6592;;-1:-1:-1;;;;;805:6592:164;6448:25:30;;6429:44;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;4824:6:60;-1:-1:-1;;;;;805:6592:164;4815:4:60;4807:23;4803:145;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;4803:145:60;4578:29;;;805:6592:164;4908:29:60;805:6592:164;;4908:29:60;805:6592:164;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;805:6592:164;4392:4:60;4384:23;;;:120;;;;805:6592:164;4367:251:60;;;2303:62:29;;:::i;:::-;805:6592:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5865:52:60;;805:6592:164;;5865:52:60;;;805:6592:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;805:6592:164;6227:60:60;805:6592:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;805:6592:164;;2458:15:53;:11;;805:6592:164;4065:25:66;;4107:55;4065:25;;;;;;805:6592:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;805:6592:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;805:6592:164;6159:70:53;6199:19;;;805:6592:164;6199:19:53;805:6592:164;;6199:19:53;1744:119;1805:47;;;805:6592:164;1805:47:53;805:6592:164;;;;1805:47:53;5955:120:60;6026:34;;;805:6592:164;6026:34:60;805:6592:164;;;;6026:34:60;5865:52;;;;805:6592:164;5865:52:60;;805:6592:164;5865:52:60;;;;;;805:6592:164;5865:52:60;;;:::i;:::-;;;805:6592:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;;;;:::o;5424:95::-;805:6592;;-1:-1:-1;;;5487:25:164;;805:6592;5487:25;;;805:6592;;;;;;-1:-1:-1;;;805:6592:164;;;;;;4535:25;3405:215:29;-1:-1:-1;;;;;805:6592:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;805:6592:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;805:6592:164;;-1:-1:-1;2763:40:29;7082:141:30;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;805:6592:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;805:6592:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;805:6592:164;;;;4933:24:66;805:6592:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"setValidators(address[])\":{\"details\":\"Sets validators for POA middleware.\",\"params\":{\"validators\":\"The addresses of validators to set.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9\",\"dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75\",\"dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"setValidators(address[])":{"details":"Sets validators for POA middleware.","params":{"validators":"The addresses of validators to set."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819","urls":["bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9","dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab","urls":["bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75","dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":79582,"exportedSymbols":{"Gear":[84267],"IMiddleware":[74131],"IPOAMiddleware":[74416],"MapWithTimeData":[84555],"OwnableUpgradeable":[42322],"POAMiddleware":[79581],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":79001,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79003,"nodeType":"ImportDirective","src":"100:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79002,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79005,"nodeType":"ImportDirective","src":"202:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79004,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79007,"nodeType":"ImportDirective","src":"343:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79006,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79009,"nodeType":"ImportDirective","src":"432:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79008,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79011,"nodeType":"ImportDirective","src":"513:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79010,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79013,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79012,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79015,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":74417,"symbolAliases":[{"foreign":{"id":79014,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74416,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79017,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":84268,"symbolAliases":[{"foreign":{"id":79016,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79019,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79582,"sourceUnit":84556,"symbolAliases":[{"foreign":{"id":79018,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79581,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":79032,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79581,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":79031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1106:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":79035,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79581,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":79034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":79043,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":79042,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79039,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79041,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":79036,"nodeType":"StructuredDocumentation","src":"1406:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79037,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":79038,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79077,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":79076,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":79052,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79046,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":79053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1634:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"1626:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79051,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1611:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79055,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79056,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79058,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":79060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":79059,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79062,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[79065],"declarations":[{"constant":false,"id":79065,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":79076,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79064,"nodeType":"UserDefinedTypeName","pathNode":{"id":79063,"name":"Storage","nameLocations":["1754:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"1754:7:164"},"referencedDeclaration":73928,"src":"1754:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79066,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"1774:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1754:30:164"},{"expression":{"id":79074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79069,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79065,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"1795:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79072,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79046,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":79073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"1806:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1795:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79075,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":79049,"kind":"modifierInvocation","modifierName":{"id":79048,"name":"initializer","nameLocations":["1589:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"1589:11:164"},"nodeType":"ModifierInvocation","src":"1589:11:164"}],"name":"initialize","nameLocation":"1542:10:164","parameters":{"id":79047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79046,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":79077,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":79045,"nodeType":"UserDefinedTypeName","pathNode":{"id":79044,"name":"InitParams","nameLocations":["1553:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"1553:10:164"},"referencedDeclaration":73890,"src":"1553:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1552:29:164"},"returnParameters":{"id":79050,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79119,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":79118,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79087,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"1983:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79086,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1968:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79090,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[79093],"declarations":[{"constant":false,"id":79093,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":79118,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79092,"nodeType":"UserDefinedTypeName","pathNode":{"id":79091,"name":"Storage","nameLocations":["2002:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2002:7:164"},"referencedDeclaration":73928,"src":"2002:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79096,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79094,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"2031:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2031:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2002:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":79098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2068:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":79097,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79100,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":79102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":79101,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79580,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2112:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79104,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[79107],"declarations":[{"constant":false,"id":79107,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":79118,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79106,"nodeType":"UserDefinedTypeName","pathNode":{"id":79105,"name":"Storage","nameLocations":["2179:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2179:7:164"},"referencedDeclaration":73928,"src":"2179:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79110,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79108,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"2208:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2179:39:164"},{"expression":{"id":79116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79111,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79107,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2240:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2229:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79114,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79093,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2249:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2229:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79117,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":79078,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79081,"kind":"modifierInvocation","modifierName":{"id":79080,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":79083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1955:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":79084,"kind":"modifierInvocation","modifierName":{"id":79082,"name":"reinitializer","nameLocations":["1941:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"1941:13:164"},"nodeType":"ModifierInvocation","src":"1941:16:164"}],"name":"reinitialize","nameLocation":"1909:12:164","parameters":{"id":79079,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":79085,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79129,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":79128,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79120,"nodeType":"StructuredDocumentation","src":"2279:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":79126,"kind":"modifierInvocation","modifierName":{"id":79125,"name":"onlyOwner","nameLocations":["2510:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2510:9:164"},"nodeType":"ModifierInvocation","src":"2510:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2447:17:164","overrides":{"id":79124,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":79123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79122,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":79129,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79121,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":79127,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79145,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":79144,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":79142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79138,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79508,"src":"2734:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74408_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74408_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74407,"src":"2734:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79141,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79133,"src":"2760:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2734:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79143,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74415],"documentation":{"id":79130,"nodeType":"StructuredDocumentation","src":"2528:120:164","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":79136,"kind":"modifierInvocation","modifierName":{"id":79135,"name":"onlyOwner","nameLocations":["2714:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2714:9:164"},"nodeType":"ModifierInvocation","src":"2714:9:164"}],"name":"setValidators","nameLocation":"2662:13:164","parameters":{"id":79134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79133,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":79145,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79131,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79132,"nodeType":"ArrayTypeName","src":"2676:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2675:29:164"},"returnParameters":{"id":79137,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79160,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79159,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79155,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79508,"src":"2882:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74408_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74408_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74407,"src":"2882:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79154,"id":79158,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":79150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79160,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79146,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79160,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79148,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":79154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79160,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79151,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79152,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79581,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79170,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79169,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79165,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"2985:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2985:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79164,"id":79168,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79161,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79170,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79162,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79581,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79180,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79179,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79175,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79178,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79171,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79180,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79172,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79190,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79189,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79185,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3340:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79188,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79181,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79190,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79182,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79200,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79199,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79195,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3448:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3448:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79198,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79191,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79200,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79192,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79210,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79209,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3560:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79205,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3553:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79208,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79201,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79210,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79202,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79220,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79219,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3664:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79215,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3657:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79218,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79211,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79220,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79212,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79230,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79229,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79225,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3768:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79228,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79221,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79230,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79222,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79240,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79239,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3890:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79235,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3883:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79238,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79231,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79240,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79232,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79250,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79249,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4002:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79245,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3995:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79248,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79241,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79250,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79242,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79260,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79259,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4110:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79255,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4103:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79258,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79251,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79260,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79252,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79270,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79269,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4210:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79265,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4203:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79268,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79261,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79270,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79262,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79280,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79279,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4310:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79275,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4303:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4303:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79278,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79271,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79280,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79290,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79289,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4411:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79285,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4404:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79288,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79281,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79290,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79282,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79301,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79300,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4542:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79296,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4535:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79299,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79291,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79301,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79293,"nodeType":"UserDefinedTypeName","pathNode":{"id":79292,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83391,"src":"4493:23:164"},"referencedDeclaration":83391,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83391_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79309,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79308,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4629:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79304,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4622:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79307,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79302,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79303,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79317,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79316,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4715:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79312,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4708:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79315,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79310,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79311,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79327,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79326,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79322,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4807:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79325,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79327,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79318,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79321,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79337,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79336,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79332,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4905:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4905:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79335,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79337,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79328,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79331,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79345,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79344,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5000:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79340,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4993:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79343,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79338,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79339,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79355,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79354,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79350,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5090:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79353,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79355,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79346,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79349,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79371,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79370,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79366,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79369,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79371,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79356,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79371,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79358,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79371,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79371,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79386,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79385,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5393:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79381,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5386:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79384,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79386,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79373,"nodeType":"UserDefinedTypeName","pathNode":{"id":79372,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83200,"src":"5301:28:164"},"referencedDeclaration":83200,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79386,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79375,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79386,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79398,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79397,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5494:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79393,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5487:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79396,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79398,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79387,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79398,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79389,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79392,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79408,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79407,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5585:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79403,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5578:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79406,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79408,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79399,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79402,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79418,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79417,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79413,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5668:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5668:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79416,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79418,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79409,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79412,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79428,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79427,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5769:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79423,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5762:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79426,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79428,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79419,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79422,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79442,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79441,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5892:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79437,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5885:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5885:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79440,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79442,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79429,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79442,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79431,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79442,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79434,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79458,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79457,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6040:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79453,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6033:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6033:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79456,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79458,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79443,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79458,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79446,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79447,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79458,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79449,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79450,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79470,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79469,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6144:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79465,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6137:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79468,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79470,"src":"6093:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79460,"nodeType":"UserDefinedTypeName","pathNode":{"id":79459,"name":"SlashData","nameLocations":["6093:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"6093:9:164"},"referencedDeclaration":73942,"src":"6093:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79461,"nodeType":"ArrayTypeName","src":"6093:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6092:22:164"},"returnParameters":{"id":79464,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79482,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79481,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6254:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79477,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6247:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79480,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79482,"src":"6197:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79472,"nodeType":"UserDefinedTypeName","pathNode":{"id":79471,"name":"SlashIdentifier","nameLocations":["6197:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"6197:15:164"},"referencedDeclaration":73947,"src":"6197:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79473,"nodeType":"ArrayTypeName","src":"6197:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6196:28:164"},"returnParameters":{"id":79476,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79581,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79495,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79494,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79489],"declarations":[{"constant":false,"id":79489,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79494,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79492,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79490,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79520,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6365:32:164"},{"AST":{"nativeSrc":"6433:47:164","nodeType":"YulBlock","src":"6433:47:164","statements":[{"nativeSrc":"6447:23:164","nodeType":"YulAssignment","src":"6447:23:164","value":{"name":"slot","nativeSrc":"6466:4:164","nodeType":"YulIdentifier","src":"6466:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6447:15:164","nodeType":"YulIdentifier","src":"6447:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79486,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79489,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79493,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79483,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79486,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79495,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79485,"nodeType":"UserDefinedTypeName","pathNode":{"id":79484,"name":"Storage","nameLocations":["6327:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"6327:7:164"},"referencedDeclaration":73928,"src":"6327:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6326:28:164"},"scope":79581,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79508,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79507,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79502],"declarations":[{"constant":false,"id":79502,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79507,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79505,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79503,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79532,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6578:35:164"},{"AST":{"nativeSrc":"6648:47:164","nodeType":"YulBlock","src":"6648:47:164","statements":[{"nativeSrc":"6662:23:164","nodeType":"YulAssignment","src":"6662:23:164","value":{"name":"slot","nativeSrc":"6681:4:164","nodeType":"YulIdentifier","src":"6681:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6662:15:164","nodeType":"YulIdentifier","src":"6662:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79499,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79502,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79506,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79496,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79499,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79508,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74408_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79498,"nodeType":"UserDefinedTypeName","pathNode":{"id":79497,"name":"POAStorage","nameLocations":["6537:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":74408,"src":"6537:10:164"},"referencedDeclaration":74408,"src":"6537:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74408_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6536:31:164"},"scope":79581,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79520,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79519,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79515,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79032,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79513,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6794:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6782:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6823:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6782:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79512,"id":79518,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79509,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79520,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79581,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79532,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79531,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79527,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79035,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79525,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6931:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6919:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6919:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6919:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79524,"id":79530,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79521,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79532,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79581,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79556,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79555,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79540],"declarations":[{"constant":false,"id":79540,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79555,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79545,"initialValue":{"arguments":[{"id":79543,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79534,"src":"7102:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79541,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7090:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7075:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7075:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7060:52:164"},{"expression":{"id":79553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79549,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79032,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79546,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7134:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7122:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7122:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7163:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7122:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79552,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79554,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79537,"kind":"modifierInvocation","modifierName":{"id":79536,"name":"onlyOwner","nameLocations":["7040:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7040:9:164"},"nodeType":"ModifierInvocation","src":"7040:9:164"}],"name":"_setStorageSlot","nameLocation":"6991:15:164","parameters":{"id":79535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79534,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79556,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79533,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79538,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79580,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79579,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79564],"declarations":[{"constant":false,"id":79564,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79579,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79569,"initialValue":{"arguments":[{"id":79567,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79558,"src":"7311:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79565,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7299:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7284:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7284:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7269:52:164"},{"expression":{"id":79577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79573,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79035,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79570,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7343:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7331:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7376:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7331:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79576,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79564,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79578,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79561,"kind":"modifierInvocation","modifierName":{"id":79560,"name":"onlyOwner","nameLocations":["7249:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7249:9:164"},"nodeType":"ModifierInvocation","src":"7249:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7197:18:164","parameters":{"id":79559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79558,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79580,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79557,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79562,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79581,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":79020,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":79021,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":79022,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74416,"src":"852:14:164"},"id":79023,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":79024,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":79025,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":79026,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":79027,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":79028,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":79029,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79581,46243,44833,43943,42322,43484,42590,74416,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79582,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":164} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Router.json b/ethexe/ethereum/abi/Router.json index 089c0b1e076..dd8598324c1 100644 --- a/ethexe/ethereum/abi/Router.json +++ b/ethexe/ethereum/abi/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"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":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"},{"name":"lastAdvancedEthBlock","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"hasAggregatedPublicKey","type":"bool","internalType":"bool"},{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"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"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"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":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"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":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"_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":"requestCodeValidationBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationExtraFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationOnBehalf","inputs":[{"name":"_requester","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_blobHashes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v1","type":"uint8","internalType":"uint8"},{"name":"_r1","type":"bytes32","internalType":"bytes32"},{"name":"_s1","type":"bytes32","internalType":"bytes32"},{"name":"_v2","type":"uint8","internalType":"uint8"},{"name":"_r2","type":"bytes32","internalType":"bytes32"},{"name":"_s2","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationBaseFee","inputs":[{"name":"newBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationExtraFee","inputs":[{"name":"newExtraFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"},{"name":"maxValidators","type":"uint16","internalType":"uint16"},{"name":"requestCodeValidationBaseFee","type":"uint256","internalType":"uint256"},{"name":"requestCodeValidationExtraFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"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":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BatchCommitted","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"}],"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":"EBCommitted","inputs":[{"name":"ethBlockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"MBCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"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":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBlobHash","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"providedBlobHash","type":"bytes32","internalType":"bytes32"},{"name":"expectedBlobHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidBlobHashesLength","inputs":[{"name":"providedLength","type":"uint256","internalType":"uint256"},{"name":"expectedLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"requester","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTimestamp","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":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020615c155f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615b4e90816100c7823960805181818161282f01526128c20152f35b6001600160401b0319166001600160401b039081175f516020615c155f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ace5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d146131615780631622441d14612cee578063188509e914612cc057806328e24b3d14612c925780633644e51514612c775780633683c4d214612bba5780633bd109fa14612b6b5780633d43b41814612b175780633f4ba83a14612a975780634f1ef2861461288357806352d1902d1461281c57806353f7fd4814611e375780635c975abb14611e085780636c2eb35014611899578063715018a61461183057806371a8cf2d146118025780637ecebe00146117aa57806382bdeaad146116925780638456cb591461161f57806384b0196e146114f757806384d22a4f1461149957806388f50cf0146114605780638b1edf1e146114015780638c4ace6a146112925780638da5cb5b1461125d5780638f381dbe146112175780639067088e146111ce57806396a2ddfa146111a05780639eb939a814611149578063a5d53a44146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ace5f395f51905f525442906154fe565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ace5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f59036906004016134f4565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ace5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826135a5565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826135a5565b5190206105616156c6565b906040519161190160f01b83526002830152602282015260c43591604260a43592206157a7565b90929192615829565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836135a5565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946135a5565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613911565b3514610771838686613911565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926135a5565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836135a5565b5f610906565b6040513d88823e3d90fd5b816109ea916135a5565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ace5f395f51905f525460086004610a2842846154fe565b0154910154906001600160801b038260801c921690615457565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ace5f395f51905f525442906154fe565b0154604051908152f35b50346103205780600319360112610320575f516020615ace5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ace5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ace5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ace5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615ace5f395f51905f525442906154fe565b01613aa8565b60405191829160208352602083019061367a565b0390f35b5034610320578060031936011261032057604051610bd58161356e565b610bdd6139f7565b8152604051610beb81613553565b5f8152602081015f90526020820152610c026139f7565b6040820152610c0f613a75565b6060820152604051610c2081613553565b5f80825260208201526080820152610c366139f7565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ace5f395f51905f5254610c71613a75565b50610c7e60098201615752565b90610c8b600f8201615752565b60088201549260405193610c9e8561358a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761356e565b604051610cf581613524565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613553565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613524565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e60158901613949565b9760808a01988952601601610db290613a15565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916136b6565b90606001519061027f198a8203016102e08b0152610ed0916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ace5f395f51905f52540160043582528452205416610f816040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb49036906004016134f4565b905f516020615ace5f395f51905f525490610fce836138a6565b91610fdc60405193846135a5565b838352610fe8846138a6565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613911565b613977565b828060a01b03165f528360205260405f20546110798288613935565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a36040826135a5565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ace5f395f51905f52546001600160a01b03906002906111009042906154fe565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611144603f19926060830190613656565b030190f35b50346103205780600319360112610320576111626139f7565b50606061117f60165f516020615ace5f395f51905f525401613a15565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ace5f395f51905f52540154604051908152f35b5034610320576020366003190112610320576111e86134b6565b601a5f516020615ace5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b03821161032057602061125361124d36600486016134f4565b9061398b565b6040519015158152f35b50346103205780600319360112610320575f516020615a4e5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610725576112bc613bba565b8249156113f2575f516020615ace5f395f51905f52546001810154156113e35760198101918385528260205260ff60408620541660038110156113cf576113c0576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113ab575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b816113b5916135a5565b61072557825f611376565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f525460018101908154611451576002015463ffffffff1640908115611442575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576114b2613780565b5060406114cf60155f516020615ace5f395f51905f525401613949565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615a8e5f395f51905f52541580611609575b156115cc576115709061152f6152dd565b906115386153aa565b90602061157e6040519361154c83866135a5565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106115b557505050500390f35b8351855286955093810193928101926001016115a6565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615b2e5f395f51905f52541561151e565b5034610320578060031936011261032057611638613b87565b611640613bba565b600160ff195f516020615aee5f395f51905f525416175f516020615aee5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e576116c39036906004016134f4565b905f516020615ace5f395f51905f5254906116dd836138a6565b916116eb60405193846135a5565b8383526116f7846138a6565b602084019490601f19013686376019869201915b81811061176057868587604051928392602084019060208552518091526040840192915b81811061173d575050500390f35b91935091602080826117526001948851613635565b01940191019184939261172f565b61176b818386613911565b3587528260205260ff6040882054166117848287613935565b6003821015611796575260010161170b565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b036117d26134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ace5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611849613b87565b5f516020615a4e5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103205780600319360112610320576118b2613b87565b5f516020615b0e5f395f51905f525460ff8160401c16908115611df3575b50611de4575f516020615b0e5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615a4e5f395f51905f525461192a906001600160a01b0316611922615727565b610381615727565b6119326137b6565b9061193b6137e3565b90611944615727565b61194c615727565b82516001600160401b038111611ce7576119735f516020615a2e5f395f51905f52546152a5565b601f8111611d80575b506020601f8211600114611d0657829394829392611cfb575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b81516001600160401b038111611ce7576119dd5f516020615a6e5f395f51905f52546152a5565b601f8111611c7a575b50602092601f8211600114611c0157928293829392611bf6575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b805f516020615a8e5f395f51905f5255805f516020615b2e5f395f51905f52555f516020615ace5f395f51905f5254611a5861520d565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611aa681613553565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611ad142846154fe565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611b22918491611bc7575b5061385a565b90816103e8026103e881048303611bb357601e820155816101f402916101f4830403611b9f57601f015560ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611be9915060203d602011611bef575b611be181836135a5565b810190613841565b5f611b1c565b503d611bd7565b015190505f80611a00565b601f198216935f516020615a6e5f395f51905f52845280842091845b868110611c625750836001959610611c4a575b505050811b015f516020615a6e5f395f51905f5255611a21565b01515f1960f88460031b161c191690555f8080611c30565b91926020600181928685015181550194019201611c1d565b818111156119e6575f516020615a6e5f395f51905f528352611cd9907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611cdf575b601f82910160051c03910161528a565b5f6119e6565b859150611cc9565b634e487b7160e01b82526041600452602482fd5b015190505f80611995565b5f516020615a2e5f395f51905f52835280832090601f198316845b818110611d6857509583600195969710611d50575b505050811b015f516020615a2e5f395f51905f52556119b6565b01515f1960f88460031b161c191690555f8080611d36565b9192602060018192868b015181550194019201611d21565b8181111561197c575f516020615a2e5f395f51905f528352611dde907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611cdf57601f82910160051c03910161528a565b5f61197c565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f6118d0565b5034610320578060031936011261032057602060ff5f516020615aee5f395f51905f5254166040519015158152f35b50346103205761016036600319011261032057611e526134b6565b906024356001600160a01b0381169081900361098e57611e7061348a565b92611e796134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757611eed9036906004016134f4565b9590935f516020615b0e5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612814575b600114908161280a575b159081612801575b506127f257611f6f908a60016001600160401b03195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f52556127c2575b611922615727565b611f77615727565b611f7f6137b6565b611f876137e3565b90611f90615727565b611f98615727565b8051906001600160401b0382116127ae5781908b611fc35f516020615a2e5f395f51905f52546152a5565b601f811161275d575b5050602090601f83116001146126e1578c926126d6575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b8051906001600160401b0382116126c257819061202e5f516020615a6e5f395f51905f52546152a5565b601f8111612653575b50602090601f83116001146125d7578b926125cc575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b875f516020615a8e5f395f51905f5255875f516020615b2e5f395f51905f5255612096615727565b61209e615727565b42156125bd5781156125ae578181111561259f57600a6120be8383613802565b04831015612590576040809a81516120d683826135a5565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612109613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ace5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161215e61520d565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906121a882613524565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561221c613780565b50895161222881613553565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061226d81613524565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa90811561258657906122cd918691611bc7575061385a565b806103e8026103e88104820361257257601e8a0155806101f402906101f482040361255e579061232d91601f8a015561232587519861230b8a613553565b60e4358a5260208a019461010435865260243692016135e1565b9336916138bd565b958051825170014551231950b75fc4402da1732fc9bebe198210918261254d575b50501561253e5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125315752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156123f65782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016123be565b509195949094865b835181101561243e576001906001600160a01b0361241c8287613935565b5116828060a01b03165f5285602052865f208260ff19825416179055016123fe565b50925092938151916001600160401b03831161251d57600160401b831161251d576020908254848455808510612502575b500190865260208620865b8381106124e55750505050600e42910155612493575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161247a565b61251790848a528580858c200191039061528a565b5f61246f565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6125579250615923565b5f8061234e565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061204d565b5f516020615a6e5f395f51905f528c52818c209250601f1984168c5b81811061263b5750908460019594939210612623575b505050811b015f516020615a6e5f395f51905f525561206e565b01515f1960f88460031b161c191690555f8080612609565b929360206001819287860151815501950193016125f3565b82811115612037575f516020615a6e5f395f51905f528c526126b4907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e602087106126ba575b50601f82910160051c03910161528a565b5f612037565b91508e6126a3565b634e487b7160e01b8a52604160045260248afd5b015190505f80611fe3565b5f516020615a2e5f395f51905f528d52818d209250601f1984168d5b818110612745575090846001959493921061272d575b505050811b015f516020615a2e5f395f51905f5255612004565b01515f1960f88460031b161c191690555f8080612713565b929360206001819287860151815501950193016126fd565b83811115611fcc575f516020615a2e5f395f51905f5261279f92528d6020812091601f860160051c91602087106127a65750601f82910160051c03910161528a565b8b5f611fcc565b91508f6126a3565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f5255611f67565b63f92ee8a960e01b8952600489fd5b9050155f611f2d565b303b159150611f25565b8b9150611f1b565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036128745760206040515f516020615aae5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610320576128986134b6565b906024356001600160401b03811161098e576128b8903690600401613617565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612a75575b50612a66576128fa613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612a2e575b5061293f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615aae5f395f51905f528103612a1c5750813b15612a0a575f516020615aae5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156129f057808360206129e495519101845af43d156129e8573d916129c8836135c6565b926129d660405194856135a5565b83523d85602085013e6159cf565b5080f35b6060916159cf565b505050346129fb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612a5e575b81612a4a602093836135a5565b81010312612a5a5751945f612926565b5f80fd5b3d9150612a3d565b63703e46dd60e11b8252600482fd5b5f516020615aae5f395f51905f52546001600160a01b0316141590505f6128ed565b5034610320578060031936011261032057612ab0613b87565b5f516020615aee5f395f51905f525460ff811615612b085760ff19165f516020615aee5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612b316134b6565b612b39613b87565b5f516020615ace5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612b84613780565b506040612ba8612ba35f516020615ace5f395f51905f525442906154fe565b613798565b60208251918051835201516020820152f35b503461032057606036600319011261032057612bd461348a565b612bdc613bba565b612bea602435600435614057565b506001600160a01b0390811691908116612c725750335b5f516020615ace5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612c01565b50346103205780600319360112610320576020610a426156c6565b5034610320578060031936011261032057602060015f516020615ace5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ace5f395f51905f52540154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57612d4b9036906004016134f4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6131525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ace5f395f51905f5254906001820154156113e3578154156130f6575b600382015460446004350135036130e75765ffffffffffff60048301541665ffffffffffff612dea60246004350161376d565b16106130d957612dff600435600401836141f9565b92612e1460a4600435016004356004016146fb565b808096925060051b046020148515171561257257612e348560051b615496565b8695865b818810612fa45750612f6a965060051b902090612e5a6004356004018661473d565b612e6960043560040187614b1b565b90612e7860246004350161376d565b93612e8760646004350161375f565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612eec60e7826135a5565b5190209283600382015565ffffffffffff612f0b60246004350161376d565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff612f5f60246004350161376d565b169360243591614fa4565b15612f9557807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b612fb860a4600435016004356004016146fb565b8910156130c5578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036130b65760019160209161307b8b8b8e868360061b8601019261300584614730565b156130975760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461303790613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661306684614730565b1515926040519060061b8701358152a2614730565b908b60061b01358c52825360218b208186015201970196612e38565b60409260199160061b87013583520187522060ff19815416905561303a565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61311361310760646004350161375f565b6004356004013561414f565b156131435765ffffffffffff61312d60246004350161376d565b164211612db757631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ace5f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ace5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e881836135a5565b5f613282565b6040513d87823e3d90fd5b81613357916135a5565b61072557825f61323a565b34612a5a576080366003190112612a5a5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612a5a57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f613416916135a5565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612a5a576020366003190112612a5a57613446613b87565b600435601f5f516020615ace5f395f51905f525401555f80f35b34612a5a575f366003190112612a5a57602090601c5f516020615ace5f395f51905f525401548152f35b604435906001600160a01b0382168203612a5a57565b606435906001600160a01b0382168203612a5a57565b600435906001600160a01b0382168203612a5a57565b35906001600160a01b0382168203612a5a57565b35906001600160801b0382168203612a5a57565b9181601f84011215612a5a578235916001600160401b038311612a5a576020808501948460051b010111612a5a57565b606081019081106001600160401b0382111761353f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761353f57604052565b61016081019081106001600160401b0382111761353f57604052565b608081019081106001600160401b0382111761353f57604052565b90601f801991011681019081106001600160401b0382111761353f57604052565b6001600160401b03811161353f57601f01601f191660200190565b9291926135ed826135c6565b916135fb60405193846135a5565b829481845281830111612a5a578281602093845f960137010152565b9080601f83011215612a5a57816020613632933591016135e1565b90565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612a5a57518015158103612a5a5790565b3560ff81168103612a5a5790565b3565ffffffffffff81168103612a5a5790565b6040519061378d82613553565b5f6020838281520152565b906040516137a581613553565b602060018294805484520154910152565b604051906137c56040836135a5565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137f26040836135a5565b60018252603160f81b6020830152565b9190820391821161380f57565b634e487b7160e01b5f52601160045260245ffd5b811561382d570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612a5a575160ff81168103612a5a5790565b60ff16604d811161380f57600a0a90565b8181029291811591840414171561380f57565b9190826040910312612a5a5760405161389681613553565b6020808294803584520135910152565b6001600160401b03811161353f5760051b60200190565b9291906138c9816138a6565b936138d760405195866135a5565b602085838152019160051b8101928311612a5a57905b8282106138f957505050565b60208091613906846134cc565b8152019101906138ed565b91908110156139215760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139215760209160051b010190565b9060405161395681613553565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612a5a5790565b6139a45f516020615ace5f395f51905f525442906154fe565b600301905f5b8381106139ba5750505050600190565b6139c8611058828685613911565b6001600160a01b03165f9081526020849052604090205460ff16156139ef576001016139aa565b505050505f90565b60405190613a0482613524565b5f6040838281528260208201520152565b90604051613a2281613524565b60406002829480548452600181015460208501520154910152565b60405190613a4a8261358a565b5f606083604051613a5a81613553565b83815283602082015281528260208201528160408201520152565b60405190613a828261358a565b815f81525f6020820152613a94613a3d565b60408201526060613aa3613a3d565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ad9575050613ad7925003836135a5565b565b84546001600160a01b0316835260019485019487945060209093019201613ac2565b5f19811461380f5760010190565b9190820180921161380f57565b6001600160a01b03168015613b74575f516020615a4e5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615a4e5f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615aee5f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612a5a576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612a5a57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b435f198101939290841161380f5760ff1643811061419f57505f925b8381101561417b575b505f925050565b804082810361418d5750600193505050565b1561419a575f190161416b565b614174565b6141a99043613802565b9261416b565b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160051b36038313612a5a57565b903590605e1981360301821215612a5a570190565b9060808101600161420a82846141af565b9050116146ec5761421b81836141af565b9050156146c55761422b916141af565b15613921578061423a916141e4565b9161424583806141af565b9190928260051b938385046020148415171561380f5761426785969495615496565b925f945f97601a60fe19853603019501965b888a1015614628578960051b85013586811215612a5a57850161429b81613977565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036142cd82615482565b16151580614615575b614604575b6001600160a01b036142ec84613977565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b039061436b906001600160a01b03614329856134cc565b1660248901526020840135604489015261434560408501614b0e565b151560648901526001600160a01b03614360606086016134cc565b1660848901526134e0565b1660a486015261437d60a08201614b0e565b151560c486015236819003601e190160c082013581811215612a5a578201602081359101936001600160401b038211612a5a576060820236038513612a5a57819061010060e48a015252610144870193905f905b8082106145ba5750505060e082013590811215612a5a5701803560208201926001600160401b038211612a5a578160051b908136038513612a5a5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106144ad5750505050505050602093916001600160801b03848093039316905af190811561341c575f9161447b575b50816020916001938a015201990198614279565b90506020813d82116144a5575b81614495602093836135a5565b81010312612a5a57516001614467565b3d9150614488565b919395979850919395601f19848203018752873582811215612a5a578301602081013582526001600160a01b036144e6604083016134cc565b1660208301526060810135603e193683900301811215612a5a578101602081013591906040016001600160401b038311612a5a578236038113612a5a57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614555608083016134e0565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612a5a578360209361459760e086956101009560a060019a015201614b0e565b151560c0830152601f80199101160101990197019401918a989796959391614436565b90919460608060019288358152838060a01b036145d960208b016134cc565b1660208201526001600160801b036145f360408b016134e0565b1660408201520196019201906143d1565b905061460f81615482565b906142db565b5061462260a08401614730565b156142d6565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a1013580614696575b604051916020830193845260408301526060820152606081526146906080826135a5565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a161466c565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160061b36038313612a5a57565b358015158103612a5a5790565b60c08201600161474d82856141af565b905011614acd5761475e81846141af565b9050156146c55761476f90836141af565b1561392157803590607e1981360301821215612a5a570191606083019060206147978361376d565b91019065ffffffffffff806147ab8461376d565b1691161015614abe576147bd8261376d565b65ffffffffffff80600286015460201c16911610614aaf5761480365ffffffffffff6147fc6147f6826147ef8761376d565b16876154bb565b9361376d565b16846154bb565b1115614aa0576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446148498361484189896141e4565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614a81575b5015614a72575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614a3a575b50906148ce916141e4565b916148d88261376d565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612a5a578101602081359101936001600160401b038211612a5a578160061b36038513612a5a5760606044890152819052869360c485019392915f5b818110614a0257505050836020959365ffffffffffff829484895f9601356064860152614971604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f926149cc575b506149999061376d565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526146906066826135a5565b9091506020813d6020116149fa575b816149e8602093836135a5565b81010312612a5a57519061499961498f565b3d91506149db565b919550919293604080600192838060a01b03614a1d8a6134cc565b16815260208901356020820152019601910191889594939261493b565b919094506020823d602011614a6a575b81614a57602093836135a5565b81010312612a5a579051936148ce6148c3565b3d9150614a4a565b6367b9145160e01b5f5260045ffd5b614a9a915060203d6020116106f6576106e881836135a5565b5f614876565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918136038313612a5a57565b35908115158203612a5a57565b9060e081016001614b2c82846141af565b905011614f9557614b3d81836141af565b9050156146c557614b4d916141af565b156139215780359060be1981360301821215612a5a570160808101614b7281836141af565b905015614f865765ffffffffffff600284015460201c1691614b948342613802565b614ba360168601548092613823565b9360a0830135946001810180911161380f578503614f7757614bc885614bce9361386b565b90613b09565b93614bdd601782015486613802565b4210614f6857614bec906154e3565b9160058301934285541015614f5957614c0483614730565b9260208101906060810193612325614c40614c1f8785614adc565b9190614c2b85876141af565b949091614c38368a61387e565b9436916135e1565b97614ea0575b50505f989798976003600489019801985b8854811015614c8e575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614c57565b5090919293949596985f5b8851811015614cda576001906001600160a01b03614cb7828c613935565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614c99565b50929598909396919497508151916001600160401b03831161353f57600160401b831161353f576020908254848455808510614e85575b5001905f5260205f205f5b838110614e685750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612a5a576040519260a08401908482106001600160401b0383111761353f57614d9091604052614d8784614b0e565b8552369061387e565b9460208401958652356001600160401b038111612a5a57614db49036908401613617565b604084015235906001600160401b038211612a5a570136601f82011215612a5a57614de69036906020813591016138bd565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614e465750505081520380825261469090602001826135a5565b82516001600160a01b0316855286955060209485019490920191600101614e29565b82516001600160a01b031681830155602090920191600101614d1c565b614e9a90845f528580855f200191039061528a565b5f614d11565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182614f48575b505015614f395751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff0918215614f2c57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614c46565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b614f529250615923565b5f80614ec6565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc342846154bb565b614fdb614fd56016860154809361386b565b83613b09565b9182841080806151f7575b156151c5575083106151b757614ffc9083613b09565b106151a85761500c905b826154fe565b94601960f81b5f523060601b60025260165260365f20936002811015613642578061509d5750506001810361508e57156139215761504d8161505492614adc565b36916135e1565b91606083510361507f578260206136329401516060604083015192015192600181549101549061551a565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b05750505050505f90565b6150d590600860048796970154910154906001600160801b038260801c921690615457565b925f9260035f9201915b8681101561519d576151056105886150ff61504d8460051b860186614adc565b866158e9565b6001600160a01b0381165f9081526020859052604090205460ff16615130575b506001905b016150df565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15615175575060019061512a565b94600161518392965d613afb565b93858514615191575f615125565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151e85761500c926151e0575b50615006565b90505f6151da565b6347860b9760e01b5f5260045ffd5b50615206601887015485613b09565b4210614fe6565b6152156139f7565b5063ffffffff43116152725765ffffffffffff421161525a5760405161523a81613524565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061529857505050565b5f8282015560010161528c565b90600182811c921680156152d3575b60208310146152bf57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916152b4565b604051905f825f516020615a2e5f395f51905f5254916152fc836152a5565b808352926001811690811561538b5750600114615320575b613ad7925003836135a5565b505f516020615a2e5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061536f575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615357565b60209250613ad794915060ff191682840152151560051b820101615314565b604051905f825f516020615a6e5f395f51905f5254916153c9836152a5565b808352926001811690811561538b57506001146153ec57613ad7925003836135a5565b505f516020615a6e5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061543b575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615423565b6001600160801b0380921602911661546f8183613823565b91811561382d5706156136325760010190565b356001600160801b0381168103612a5a5790565b6040519190601f01601f191682016001600160401b03811183821017612a5a57604052565b60166154da6136329365ffffffffffff600285015460201c1690613802565b91015490613823565b6154ed4282615889565b156154f85760090190565b600f0190565b906155099082615889565b1561551457600f0190565b60090190565b92939194906155298587615923565b156156bc5782156156bc5770014551231950b75fc4402da1732fc9bebe198310156156bc576001169061010e61555e81615496565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561519d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6156ce615946565b6156d661599d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261469060c0826135a5565b60ff5f516020615b0e5f395f51905f525460401c161561574357565b631afcd79f60e31b5f5260045ffd5b61575a613a3d565b506002810154600582015460405192909161579a916004916001600160a01b03166157848661358a565b61578d82613798565b8652602086015201613aa8565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161581e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b0381161561581457905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613642578061583b575050565b600181036158525763f645eedf60e01b5f5260045ffd5b6002810361586d575063fce698f760e01b5f5260045260245ffd5b6003146158775750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158da578181841093119182159111159181906158d3575b156158c457826158be57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816158af565b63f26224af60e01b5f5260045ffd5b8151919060418303615919576159129250602082015190606060408401519301515f1a906157a7565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b61594e6152dd565b805190811561595e576020012090565b50505f516020615a8e5f395f51905f525480156159785790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159a56153aa565b80519081156159b5576020012090565b50505f516020615b2e5f395f51905f525480156159785790565b906159f357508051156159e457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615a24575b615a04575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156159fc56fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47875:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;7983:34:30;7979:146;;-1:-1:-1;1553:47875:165;;;;;;;;1052:13:60;1553:47875:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;8085:29:30;;1553:47875:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:47875:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ace5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d146131615780631622441d14612cee578063188509e914612cc057806328e24b3d14612c925780633644e51514612c775780633683c4d214612bba5780633bd109fa14612b6b5780633d43b41814612b175780633f4ba83a14612a975780634f1ef2861461288357806352d1902d1461281c57806353f7fd4814611e375780635c975abb14611e085780636c2eb35014611899578063715018a61461183057806371a8cf2d146118025780637ecebe00146117aa57806382bdeaad146116925780638456cb591461161f57806384b0196e146114f757806384d22a4f1461149957806388f50cf0146114605780638b1edf1e146114015780638c4ace6a146112925780638da5cb5b1461125d5780638f381dbe146112175780639067088e146111ce57806396a2ddfa146111a05780639eb939a814611149578063a5d53a44146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ace5f395f51905f525442906154fe565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ace5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f59036906004016134f4565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ace5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826135a5565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826135a5565b5190206105616156c6565b906040519161190160f01b83526002830152602282015260c43591604260a43592206157a7565b90929192615829565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836135a5565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946135a5565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613911565b3514610771838686613911565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926135a5565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836135a5565b5f610906565b6040513d88823e3d90fd5b816109ea916135a5565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ace5f395f51905f525460086004610a2842846154fe565b0154910154906001600160801b038260801c921690615457565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ace5f395f51905f525442906154fe565b0154604051908152f35b50346103205780600319360112610320575f516020615ace5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ace5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ace5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ace5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615ace5f395f51905f525442906154fe565b01613aa8565b60405191829160208352602083019061367a565b0390f35b5034610320578060031936011261032057604051610bd58161356e565b610bdd6139f7565b8152604051610beb81613553565b5f8152602081015f90526020820152610c026139f7565b6040820152610c0f613a75565b6060820152604051610c2081613553565b5f80825260208201526080820152610c366139f7565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ace5f395f51905f5254610c71613a75565b50610c7e60098201615752565b90610c8b600f8201615752565b60088201549260405193610c9e8561358a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761356e565b604051610cf581613524565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613553565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613524565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e60158901613949565b9760808a01988952601601610db290613a15565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916136b6565b90606001519061027f198a8203016102e08b0152610ed0916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ace5f395f51905f52540160043582528452205416610f816040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb49036906004016134f4565b905f516020615ace5f395f51905f525490610fce836138a6565b91610fdc60405193846135a5565b838352610fe8846138a6565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613911565b613977565b828060a01b03165f528360205260405f20546110798288613935565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a36040826135a5565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ace5f395f51905f52546001600160a01b03906002906111009042906154fe565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611144603f19926060830190613656565b030190f35b50346103205780600319360112610320576111626139f7565b50606061117f60165f516020615ace5f395f51905f525401613a15565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ace5f395f51905f52540154604051908152f35b5034610320576020366003190112610320576111e86134b6565b601a5f516020615ace5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b03821161032057602061125361124d36600486016134f4565b9061398b565b6040519015158152f35b50346103205780600319360112610320575f516020615a4e5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610725576112bc613bba565b8249156113f2575f516020615ace5f395f51905f52546001810154156113e35760198101918385528260205260ff60408620541660038110156113cf576113c0576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113ab575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b816113b5916135a5565b61072557825f611376565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f525460018101908154611451576002015463ffffffff1640908115611442575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576114b2613780565b5060406114cf60155f516020615ace5f395f51905f525401613949565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615a8e5f395f51905f52541580611609575b156115cc576115709061152f6152dd565b906115386153aa565b90602061157e6040519361154c83866135a5565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106115b557505050500390f35b8351855286955093810193928101926001016115a6565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615b2e5f395f51905f52541561151e565b5034610320578060031936011261032057611638613b87565b611640613bba565b600160ff195f516020615aee5f395f51905f525416175f516020615aee5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e576116c39036906004016134f4565b905f516020615ace5f395f51905f5254906116dd836138a6565b916116eb60405193846135a5565b8383526116f7846138a6565b602084019490601f19013686376019869201915b81811061176057868587604051928392602084019060208552518091526040840192915b81811061173d575050500390f35b91935091602080826117526001948851613635565b01940191019184939261172f565b61176b818386613911565b3587528260205260ff6040882054166117848287613935565b6003821015611796575260010161170b565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b036117d26134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ace5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611849613b87565b5f516020615a4e5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103205780600319360112610320576118b2613b87565b5f516020615b0e5f395f51905f525460ff8160401c16908115611df3575b50611de4575f516020615b0e5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615a4e5f395f51905f525461192a906001600160a01b0316611922615727565b610381615727565b6119326137b6565b9061193b6137e3565b90611944615727565b61194c615727565b82516001600160401b038111611ce7576119735f516020615a2e5f395f51905f52546152a5565b601f8111611d80575b506020601f8211600114611d0657829394829392611cfb575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b81516001600160401b038111611ce7576119dd5f516020615a6e5f395f51905f52546152a5565b601f8111611c7a575b50602092601f8211600114611c0157928293829392611bf6575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b805f516020615a8e5f395f51905f5255805f516020615b2e5f395f51905f52555f516020615ace5f395f51905f5254611a5861520d565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611aa681613553565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611ad142846154fe565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611b22918491611bc7575b5061385a565b90816103e8026103e881048303611bb357601e820155816101f402916101f4830403611b9f57601f015560ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611be9915060203d602011611bef575b611be181836135a5565b810190613841565b5f611b1c565b503d611bd7565b015190505f80611a00565b601f198216935f516020615a6e5f395f51905f52845280842091845b868110611c625750836001959610611c4a575b505050811b015f516020615a6e5f395f51905f5255611a21565b01515f1960f88460031b161c191690555f8080611c30565b91926020600181928685015181550194019201611c1d565b818111156119e6575f516020615a6e5f395f51905f528352611cd9907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611cdf575b601f82910160051c03910161528a565b5f6119e6565b859150611cc9565b634e487b7160e01b82526041600452602482fd5b015190505f80611995565b5f516020615a2e5f395f51905f52835280832090601f198316845b818110611d6857509583600195969710611d50575b505050811b015f516020615a2e5f395f51905f52556119b6565b01515f1960f88460031b161c191690555f8080611d36565b9192602060018192868b015181550194019201611d21565b8181111561197c575f516020615a2e5f395f51905f528352611dde907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611cdf57601f82910160051c03910161528a565b5f61197c565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f6118d0565b5034610320578060031936011261032057602060ff5f516020615aee5f395f51905f5254166040519015158152f35b50346103205761016036600319011261032057611e526134b6565b906024356001600160a01b0381169081900361098e57611e7061348a565b92611e796134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757611eed9036906004016134f4565b9590935f516020615b0e5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612814575b600114908161280a575b159081612801575b506127f257611f6f908a60016001600160401b03195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f52556127c2575b611922615727565b611f77615727565b611f7f6137b6565b611f876137e3565b90611f90615727565b611f98615727565b8051906001600160401b0382116127ae5781908b611fc35f516020615a2e5f395f51905f52546152a5565b601f811161275d575b5050602090601f83116001146126e1578c926126d6575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b8051906001600160401b0382116126c257819061202e5f516020615a6e5f395f51905f52546152a5565b601f8111612653575b50602090601f83116001146125d7578b926125cc575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b875f516020615a8e5f395f51905f5255875f516020615b2e5f395f51905f5255612096615727565b61209e615727565b42156125bd5781156125ae578181111561259f57600a6120be8383613802565b04831015612590576040809a81516120d683826135a5565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612109613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ace5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161215e61520d565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906121a882613524565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561221c613780565b50895161222881613553565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061226d81613524565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa90811561258657906122cd918691611bc7575061385a565b806103e8026103e88104820361257257601e8a0155806101f402906101f482040361255e579061232d91601f8a015561232587519861230b8a613553565b60e4358a5260208a019461010435865260243692016135e1565b9336916138bd565b958051825170014551231950b75fc4402da1732fc9bebe198210918261254d575b50501561253e5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125315752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156123f65782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016123be565b509195949094865b835181101561243e576001906001600160a01b0361241c8287613935565b5116828060a01b03165f5285602052865f208260ff19825416179055016123fe565b50925092938151916001600160401b03831161251d57600160401b831161251d576020908254848455808510612502575b500190865260208620865b8381106124e55750505050600e42910155612493575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161247a565b61251790848a528580858c200191039061528a565b5f61246f565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6125579250615923565b5f8061234e565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061204d565b5f516020615a6e5f395f51905f528c52818c209250601f1984168c5b81811061263b5750908460019594939210612623575b505050811b015f516020615a6e5f395f51905f525561206e565b01515f1960f88460031b161c191690555f8080612609565b929360206001819287860151815501950193016125f3565b82811115612037575f516020615a6e5f395f51905f528c526126b4907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e602087106126ba575b50601f82910160051c03910161528a565b5f612037565b91508e6126a3565b634e487b7160e01b8a52604160045260248afd5b015190505f80611fe3565b5f516020615a2e5f395f51905f528d52818d209250601f1984168d5b818110612745575090846001959493921061272d575b505050811b015f516020615a2e5f395f51905f5255612004565b01515f1960f88460031b161c191690555f8080612713565b929360206001819287860151815501950193016126fd565b83811115611fcc575f516020615a2e5f395f51905f5261279f92528d6020812091601f860160051c91602087106127a65750601f82910160051c03910161528a565b8b5f611fcc565b91508f6126a3565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f5255611f67565b63f92ee8a960e01b8952600489fd5b9050155f611f2d565b303b159150611f25565b8b9150611f1b565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036128745760206040515f516020615aae5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610320576128986134b6565b906024356001600160401b03811161098e576128b8903690600401613617565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612a75575b50612a66576128fa613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612a2e575b5061293f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615aae5f395f51905f528103612a1c5750813b15612a0a575f516020615aae5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156129f057808360206129e495519101845af43d156129e8573d916129c8836135c6565b926129d660405194856135a5565b83523d85602085013e6159cf565b5080f35b6060916159cf565b505050346129fb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612a5e575b81612a4a602093836135a5565b81010312612a5a5751945f612926565b5f80fd5b3d9150612a3d565b63703e46dd60e11b8252600482fd5b5f516020615aae5f395f51905f52546001600160a01b0316141590505f6128ed565b5034610320578060031936011261032057612ab0613b87565b5f516020615aee5f395f51905f525460ff811615612b085760ff19165f516020615aee5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612b316134b6565b612b39613b87565b5f516020615ace5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612b84613780565b506040612ba8612ba35f516020615ace5f395f51905f525442906154fe565b613798565b60208251918051835201516020820152f35b503461032057606036600319011261032057612bd461348a565b612bdc613bba565b612bea602435600435614057565b506001600160a01b0390811691908116612c725750335b5f516020615ace5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612c01565b50346103205780600319360112610320576020610a426156c6565b5034610320578060031936011261032057602060015f516020615ace5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ace5f395f51905f52540154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57612d4b9036906004016134f4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6131525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ace5f395f51905f5254906001820154156113e3578154156130f6575b600382015460446004350135036130e75765ffffffffffff60048301541665ffffffffffff612dea60246004350161376d565b16106130d957612dff600435600401836141f9565b92612e1460a4600435016004356004016146fb565b808096925060051b046020148515171561257257612e348560051b615496565b8695865b818810612fa45750612f6a965060051b902090612e5a6004356004018661473d565b612e6960043560040187614b1b565b90612e7860246004350161376d565b93612e8760646004350161375f565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612eec60e7826135a5565b5190209283600382015565ffffffffffff612f0b60246004350161376d565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff612f5f60246004350161376d565b169360243591614fa4565b15612f9557807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b612fb860a4600435016004356004016146fb565b8910156130c5578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036130b65760019160209161307b8b8b8e868360061b8601019261300584614730565b156130975760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461303790613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661306684614730565b1515926040519060061b8701358152a2614730565b908b60061b01358c52825360218b208186015201970196612e38565b60409260199160061b87013583520187522060ff19815416905561303a565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61311361310760646004350161375f565b6004356004013561414f565b156131435765ffffffffffff61312d60246004350161376d565b164211612db757631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ace5f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ace5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e881836135a5565b5f613282565b6040513d87823e3d90fd5b81613357916135a5565b61072557825f61323a565b34612a5a576080366003190112612a5a5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612a5a57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f613416916135a5565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612a5a576020366003190112612a5a57613446613b87565b600435601f5f516020615ace5f395f51905f525401555f80f35b34612a5a575f366003190112612a5a57602090601c5f516020615ace5f395f51905f525401548152f35b604435906001600160a01b0382168203612a5a57565b606435906001600160a01b0382168203612a5a57565b600435906001600160a01b0382168203612a5a57565b35906001600160a01b0382168203612a5a57565b35906001600160801b0382168203612a5a57565b9181601f84011215612a5a578235916001600160401b038311612a5a576020808501948460051b010111612a5a57565b606081019081106001600160401b0382111761353f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761353f57604052565b61016081019081106001600160401b0382111761353f57604052565b608081019081106001600160401b0382111761353f57604052565b90601f801991011681019081106001600160401b0382111761353f57604052565b6001600160401b03811161353f57601f01601f191660200190565b9291926135ed826135c6565b916135fb60405193846135a5565b829481845281830111612a5a578281602093845f960137010152565b9080601f83011215612a5a57816020613632933591016135e1565b90565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612a5a57518015158103612a5a5790565b3560ff81168103612a5a5790565b3565ffffffffffff81168103612a5a5790565b6040519061378d82613553565b5f6020838281520152565b906040516137a581613553565b602060018294805484520154910152565b604051906137c56040836135a5565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137f26040836135a5565b60018252603160f81b6020830152565b9190820391821161380f57565b634e487b7160e01b5f52601160045260245ffd5b811561382d570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612a5a575160ff81168103612a5a5790565b60ff16604d811161380f57600a0a90565b8181029291811591840414171561380f57565b9190826040910312612a5a5760405161389681613553565b6020808294803584520135910152565b6001600160401b03811161353f5760051b60200190565b9291906138c9816138a6565b936138d760405195866135a5565b602085838152019160051b8101928311612a5a57905b8282106138f957505050565b60208091613906846134cc565b8152019101906138ed565b91908110156139215760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139215760209160051b010190565b9060405161395681613553565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612a5a5790565b6139a45f516020615ace5f395f51905f525442906154fe565b600301905f5b8381106139ba5750505050600190565b6139c8611058828685613911565b6001600160a01b03165f9081526020849052604090205460ff16156139ef576001016139aa565b505050505f90565b60405190613a0482613524565b5f6040838281528260208201520152565b90604051613a2281613524565b60406002829480548452600181015460208501520154910152565b60405190613a4a8261358a565b5f606083604051613a5a81613553565b83815283602082015281528260208201528160408201520152565b60405190613a828261358a565b815f81525f6020820152613a94613a3d565b60408201526060613aa3613a3d565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ad9575050613ad7925003836135a5565b565b84546001600160a01b0316835260019485019487945060209093019201613ac2565b5f19811461380f5760010190565b9190820180921161380f57565b6001600160a01b03168015613b74575f516020615a4e5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615a4e5f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615aee5f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612a5a576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612a5a57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b435f198101939290841161380f5760ff1643811061419f57505f925b8381101561417b575b505f925050565b804082810361418d5750600193505050565b1561419a575f190161416b565b614174565b6141a99043613802565b9261416b565b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160051b36038313612a5a57565b903590605e1981360301821215612a5a570190565b9060808101600161420a82846141af565b9050116146ec5761421b81836141af565b9050156146c55761422b916141af565b15613921578061423a916141e4565b9161424583806141af565b9190928260051b938385046020148415171561380f5761426785969495615496565b925f945f97601a60fe19853603019501965b888a1015614628578960051b85013586811215612a5a57850161429b81613977565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036142cd82615482565b16151580614615575b614604575b6001600160a01b036142ec84613977565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b039061436b906001600160a01b03614329856134cc565b1660248901526020840135604489015261434560408501614b0e565b151560648901526001600160a01b03614360606086016134cc565b1660848901526134e0565b1660a486015261437d60a08201614b0e565b151560c486015236819003601e190160c082013581811215612a5a578201602081359101936001600160401b038211612a5a576060820236038513612a5a57819061010060e48a015252610144870193905f905b8082106145ba5750505060e082013590811215612a5a5701803560208201926001600160401b038211612a5a578160051b908136038513612a5a5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106144ad5750505050505050602093916001600160801b03848093039316905af190811561341c575f9161447b575b50816020916001938a015201990198614279565b90506020813d82116144a5575b81614495602093836135a5565b81010312612a5a57516001614467565b3d9150614488565b919395979850919395601f19848203018752873582811215612a5a578301602081013582526001600160a01b036144e6604083016134cc565b1660208301526060810135603e193683900301811215612a5a578101602081013591906040016001600160401b038311612a5a578236038113612a5a57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614555608083016134e0565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612a5a578360209361459760e086956101009560a060019a015201614b0e565b151560c0830152601f80199101160101990197019401918a989796959391614436565b90919460608060019288358152838060a01b036145d960208b016134cc565b1660208201526001600160801b036145f360408b016134e0565b1660408201520196019201906143d1565b905061460f81615482565b906142db565b5061462260a08401614730565b156142d6565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a1013580614696575b604051916020830193845260408301526060820152606081526146906080826135a5565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a161466c565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160061b36038313612a5a57565b358015158103612a5a5790565b60c08201600161474d82856141af565b905011614acd5761475e81846141af565b9050156146c55761476f90836141af565b1561392157803590607e1981360301821215612a5a570191606083019060206147978361376d565b91019065ffffffffffff806147ab8461376d565b1691161015614abe576147bd8261376d565b65ffffffffffff80600286015460201c16911610614aaf5761480365ffffffffffff6147fc6147f6826147ef8761376d565b16876154bb565b9361376d565b16846154bb565b1115614aa0576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446148498361484189896141e4565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614a81575b5015614a72575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614a3a575b50906148ce916141e4565b916148d88261376d565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612a5a578101602081359101936001600160401b038211612a5a578160061b36038513612a5a5760606044890152819052869360c485019392915f5b818110614a0257505050836020959365ffffffffffff829484895f9601356064860152614971604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f926149cc575b506149999061376d565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526146906066826135a5565b9091506020813d6020116149fa575b816149e8602093836135a5565b81010312612a5a57519061499961498f565b3d91506149db565b919550919293604080600192838060a01b03614a1d8a6134cc565b16815260208901356020820152019601910191889594939261493b565b919094506020823d602011614a6a575b81614a57602093836135a5565b81010312612a5a579051936148ce6148c3565b3d9150614a4a565b6367b9145160e01b5f5260045ffd5b614a9a915060203d6020116106f6576106e881836135a5565b5f614876565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918136038313612a5a57565b35908115158203612a5a57565b9060e081016001614b2c82846141af565b905011614f9557614b3d81836141af565b9050156146c557614b4d916141af565b156139215780359060be1981360301821215612a5a570160808101614b7281836141af565b905015614f865765ffffffffffff600284015460201c1691614b948342613802565b614ba360168601548092613823565b9360a0830135946001810180911161380f578503614f7757614bc885614bce9361386b565b90613b09565b93614bdd601782015486613802565b4210614f6857614bec906154e3565b9160058301934285541015614f5957614c0483614730565b9260208101906060810193612325614c40614c1f8785614adc565b9190614c2b85876141af565b949091614c38368a61387e565b9436916135e1565b97614ea0575b50505f989798976003600489019801985b8854811015614c8e575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614c57565b5090919293949596985f5b8851811015614cda576001906001600160a01b03614cb7828c613935565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614c99565b50929598909396919497508151916001600160401b03831161353f57600160401b831161353f576020908254848455808510614e85575b5001905f5260205f205f5b838110614e685750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612a5a576040519260a08401908482106001600160401b0383111761353f57614d9091604052614d8784614b0e565b8552369061387e565b9460208401958652356001600160401b038111612a5a57614db49036908401613617565b604084015235906001600160401b038211612a5a570136601f82011215612a5a57614de69036906020813591016138bd565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614e465750505081520380825261469090602001826135a5565b82516001600160a01b0316855286955060209485019490920191600101614e29565b82516001600160a01b031681830155602090920191600101614d1c565b614e9a90845f528580855f200191039061528a565b5f614d11565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182614f48575b505015614f395751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff0918215614f2c57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614c46565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b614f529250615923565b5f80614ec6565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc342846154bb565b614fdb614fd56016860154809361386b565b83613b09565b9182841080806151f7575b156151c5575083106151b757614ffc9083613b09565b106151a85761500c905b826154fe565b94601960f81b5f523060601b60025260165260365f20936002811015613642578061509d5750506001810361508e57156139215761504d8161505492614adc565b36916135e1565b91606083510361507f578260206136329401516060604083015192015192600181549101549061551a565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b05750505050505f90565b6150d590600860048796970154910154906001600160801b038260801c921690615457565b925f9260035f9201915b8681101561519d576151056105886150ff61504d8460051b860186614adc565b866158e9565b6001600160a01b0381165f9081526020859052604090205460ff16615130575b506001905b016150df565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15615175575060019061512a565b94600161518392965d613afb565b93858514615191575f615125565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151e85761500c926151e0575b50615006565b90505f6151da565b6347860b9760e01b5f5260045ffd5b50615206601887015485613b09565b4210614fe6565b6152156139f7565b5063ffffffff43116152725765ffffffffffff421161525a5760405161523a81613524565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061529857505050565b5f8282015560010161528c565b90600182811c921680156152d3575b60208310146152bf57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916152b4565b604051905f825f516020615a2e5f395f51905f5254916152fc836152a5565b808352926001811690811561538b5750600114615320575b613ad7925003836135a5565b505f516020615a2e5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061536f575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615357565b60209250613ad794915060ff191682840152151560051b820101615314565b604051905f825f516020615a6e5f395f51905f5254916153c9836152a5565b808352926001811690811561538b57506001146153ec57613ad7925003836135a5565b505f516020615a6e5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061543b575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615423565b6001600160801b0380921602911661546f8183613823565b91811561382d5706156136325760010190565b356001600160801b0381168103612a5a5790565b6040519190601f01601f191682016001600160401b03811183821017612a5a57604052565b60166154da6136329365ffffffffffff600285015460201c1690613802565b91015490613823565b6154ed4282615889565b156154f85760090190565b600f0190565b906155099082615889565b1561551457600f0190565b60090190565b92939194906155298587615923565b156156bc5782156156bc5770014551231950b75fc4402da1732fc9bebe198310156156bc576001169061010e61555e81615496565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561519d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6156ce615946565b6156d661599d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261469060c0826135a5565b60ff5f516020615b0e5f395f51905f525460401c161561574357565b631afcd79f60e31b5f5260045ffd5b61575a613a3d565b506002810154600582015460405192909161579a916004916001600160a01b03166157848661358a565b61578d82613798565b8652602086015201613aa8565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161581e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b0381161561581457905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613642578061583b575050565b600181036158525763f645eedf60e01b5f5260045ffd5b6002810361586d575063fce698f760e01b5f5260045260245ffd5b6003146158775750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158da578181841093119182159111159181906158d3575b156158c457826158be57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816158af565b63f26224af60e01b5f5260045ffd5b8151919060418303615919576159129250602082015190606060408401519301515f1a906157a7565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b61594e6152dd565b805190811561595e576020012090565b50505f516020615a8e5f395f51905f525480156159785790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159a56153aa565b80519081156159b5576020012090565b50505f516020615b2e5f395f51905f525480156159785790565b906159f357508051156159e457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615a24575b615a04575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156159fc56fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:47875:165:-:0;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;49133:19;;;1553:47875;49133:38;1553:47875;;-1:-1:-1;;;;;49242:9:165;1553:47875;49270:9;1553:47875;;49330:10;-1:-1:-1;1553:47875:165;;;49358:28;;;;;1553:47875;;;;;;49358:42;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;15023:40;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;15023:40:165;:52;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;13147:34;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;2357:1:29;1553:47875:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:47875:165;;;;;;;;;;;;;;;;19936:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;19936:52;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;25900:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;25996:19;1553:47875;25996:19;;1553:47875;25996:38;1553:47875;;26089:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;26199:29;26269:27;;;;;26411:39;;;1553:47875;;26531:13;;26546:22;;;;;;26825:15;;;:28;1553:47875;;;;;27089:29;;;-1:-1:-1;;;;;2670:66:165;;;;27089:29;1553:47875;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27089:29;;1553:47875;;27089:29;;;;;;:::i;:::-;1553:47875;27079:40;;1553:47875;;;;;;;;;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;26938:261;1553:47875;26938:261;;1553:47875;2670:66;1553:47875;;2670:66;1553:47875;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;2670:66;;1553:47875;;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;26938:261;;;1553:47875;26938:261;;:::i;:::-;1553:47875;26915:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:47875:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:47875:165;;;3993:249:80;1553:47875:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;27343:20;;;2670:66;;1553:47875;;;;27521:100;1553:47875;;;;;27451:32;;;1553:47875;;27521:48;27572:49;27521:48;;;1553:47875;27572:49;;1553:47875;27521:100;;:::i;:::-;27635:77;;;;;;1553:47875;;-1:-1:-1;;;27635:77:165;;-1:-1:-1;;;;;1553:47875:165;;;27635:77;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27635:77;;;;;26526:223;-1:-1:-1;1553:47875:165;;-1:-1:-1;;;27748:57:165;;-1:-1:-1;;;;;1553:47875:165;;;;27748:57;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;27748:57;;;;;;;;;;;;;;26526:223;1553:47875;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;23337:19;1553:47875;;;;;;;27951:32;;;1553:47875;;;-1:-1:-1;;;1553:47875:165;;;;;27748:57;;;;1553:47875;27748:57;1553:47875;27748:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47875;;;;;;;;;27635:77;;;;;;;;:::i;:::-;1553:47875;;27635:77;;;;;1553:47875;;;;27635:77;1553:47875;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:47875;;;;;2670:66;;;1553:47875;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;26570:3;26616:11;;26649:14;;;;;;:::i;:::-;1553:47875;26649:34;26704:14;;;;;:::i;:::-;1553:47875;;;;;26570:3;;1553:47875;;26531:13;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;26238:155;26363:19;;;:::i;:::-;26238:155;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;35540:37:165;1553:47875;;;;35540:37;:::i;:::-;35629:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;35677:96;;;;;;1553:47875;;;;;;;;;;;;35677:96;;1553:47875;;;;;;;;35717:4;;35697:10;1553:47875;35677:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;35809:79:165;;35697:10;1553:47875;35809:79;;1553:47875;35717:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;35809:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;36004:70;1553:47875;;;;35697:10;;36004:70;;35947:238;;;;;1553:47875;;-1:-1:-1;;;35947:238:165;;-1:-1:-1;;;;;1553:47875:165;;;;35947:238;;1553:47875;;;;;;;;;;;;;;;;;;;;;;35947:238;;;;;;;;;36004:70;1553:47875;;;;;;;;35947:238;;;;;;:::i;:::-;1553:47875;;35947:238;;;1553:47875;;;;35947:238;1553:47875;;;;;;;;;35947:238;1553:47875;;;36004:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;35809:79;;;;1553:47875;35809:79;1553:47875;35809:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;35677:96;;;;;:::i;:::-;1553:47875;;35677:96;;;;1553:47875;;;;;;;;;;;;;;16468:211;-1:-1:-1;;;;;;;;;;;1553:47875:165;16565:25;1553:47875;28658:37:169;28679:15;28658:37;;:::i;:::-;16506:38:165;1553:47875;16565:25;;1553:47875;;-1:-1:-1;;;;;1553:47875:165;;;;;16468:211;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;16082:41:165;1553:47875;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;15511:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;15511:25;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12336:40;1553:47875;;;;;;;;;;;;;;;;;;;;;;;11746:32;-1:-1:-1;;;;;;;;;;;1553:47875:165;11746:32;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;15821:41:165;1553:47875;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;:::i;:::-;-1:-1:-1;33999:28:169;34006:20;;;33999:28;:::i;:::-;34085:20;34078:28;34085:20;;;34078:28;:::i;:::-;10519:25:165;;;1553:47875;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;34123:241:169;;1553:47875:165;;34123:241:169;;1553:47875:165;;34123:241:169;;1553:47875:165;10908:33;;;1553:47875;10976:39;;;;1553:47875;11044:33;;;1553:47875;;;11121:48;;;1553:47875;11214:49;;;;1553:47875;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34006:20:169;10602:19:165;;1553:47875;;;10908:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10657:27;;;1553:47875;;;;;;;;;;;;;;10562:712;;1553:47875;;;;;;;;;:::i;:::-;10713:20;;;1553:47875;-1:-1:-1;;;;;1553:47875:165;;;2288:3;;11214:49;1553:47875;;;;;;;;2288:3;34085:20:169;1553:47875:165;;;;;;;;2288:3;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10816:22;;;1553:47875;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;10863:16;;1553:47875;;;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;17434:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;17434:22;1553:47875;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;18671:28;18603:13;18671:28;;18598:129;18618:23;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;18671:28;1553:47875;;;18643:3;18700:15;;;18671:28;18700:15;;;;:::i;:::-;;:::i;:::-;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;18662:54;;;;:::i;:::-;1553:47875;;18603:13;;1553:47875;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;14144:77;;28658:37:169;;28679:15;;28658:37;:::i;:::-;14144:77:165;1553:47875;;;9268:329:171;1553:47875:165;;;;;9268:329:171;;;;;;;;;;;;;;;;;;;;1553:47875:165;9268:329:171;;;;1553:47875:165;9268:329:171;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20174:19;-1:-1:-1;;;;;;;;;;;1553:47875:165;20174:19;1553:47875;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18943:36;-1:-1:-1;;;;;;;;;;;1553:47875:165;18943:36;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;18196:31;-1:-1:-1;;;;;;;;;;;1553:47875:165;18196:31;:43;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;23241:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;23337:19;;1553:47875;23337:38;1553:47875;;23430:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;23581:32;;;1553:47875;23643:48;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;23705:78;;;;;1553:47875;;-1:-1:-1;;;23705:78:165;;23725:10;1553:47875;23705:78;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23705:78;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;23819:61:165;;23725:10;1553:47875;23819:61;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;23819:61;1553:47875;23705:78;;;;;:::i;:::-;1553:47875;;23705:78;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;21933:19;;;1553:47875;;;;;22040:26;;1553:47875;;;22030:37;;22086:25;;1553:47875;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12876:35;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17203:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;17203:25;1553:47875;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;5647:18:40;:43;;;1553:47875:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:47875:165;;;;5870:4:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;5647:43:40;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;5669:21:40;5647:43;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3319:20:37;1553:47875:165;;;966:10:34;1553:47875:165;;3319:20:37;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;17903:19;17838:13;17903:19;;17833:120;17853:20;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17875:3;17929:12;;;;;:::i;:::-;1553:47875;;;;;;;;;;;;17894:48;;;;:::i;:::-;1553:47875;;;;;;;;;17838:13;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;:::i;:::-;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;12030:30;-1:-1:-1;;;;;;;;;;;1553:47875:165;12030:30;1553:47875;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;1553:47875:165;;3975:40:29;1553:47875:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;6429:44:30;;;;;1553:47875:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6959:1:30;;-1:-1:-1;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:47875:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;9356:17;;:::i;:::-;2288:3;;6591:4:30;9334:19:165;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;;2288:3;;;1553:47875;2288:3;1553:47875;2288:3;;;;;1553:47875;2288:3;;;;;;;;;;1553:47875;;;;;;;:::i;:::-;;;;9413:57;1553:47875;9383:27;3676:10:40;9383:27:165;;1553:47875;;;;;;;;;;;;;28658:37:169;28679:15;28658:37;;:::i;:::-;9523:38:165;1553:47875;;;9480:33;;;1553:47875;;2203:1:169;;;;;;;;1553:47875:165;;;;;;;9623:32;;;1553:47875;;;;;;;;;;;9610:57;;;;;;;;9604:63;9610:57;;;;;1553:47875;9604:63;;:::i;:::-;2366:5;;;;;;;;;;;9677:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;1553:47875;9795:49;1553:47875;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6654:20:30;1553:47875:165;;;6943:1;1553:47875;;6654:20:30;1553:47875:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;;;9610:57;;;;1553:47875;9610:57;1553:47875;9610:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:47875:165;;6496:23:30;6429:44;6943:1:165;1553:47875;;-1:-1:-1;;;;;1553:47875:165;6448:25:30;;6429:44;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;4301:16:30;1553:47875:165;;4724:16:30;;:34;;;;1553:47875:165;;4788:16:30;:50;;;;1553:47875:165;4853:13:30;:30;;;;1553:47875:165;4849:91:30;;;6959:1;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;1553:47875:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47875:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4821:15:165;:19;2288:3;;4879:21;;2288:3;;4946:32;;;2288:3;;;5227:2;5191:32;;;;:::i;:::-;2288:3;5171:58;;2288:3;;;1553:47875;;;;;;;;;:::i;:::-;2288:3;1553:47875;;;2288:3;;;;;2303:62:29;;:::i;:::-;1553:47875:165;;1800:178:73;;;;;;;1553:47875:165;;;1800:178:73;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;48851:24;;;5385:17;;:::i;:::-;2288:3;;1553:47875;5363:19;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;2288:3;;;1553:47875;;2288:3;;;;;;1553:47875;2288:3;;;;;;;;;;;1553:47875;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:47875:165;;;;5435:52;;2288:3;;;1553:47875;;;5435:52;;;;2288:3;;;5412:20;;;;;1553:47875;;;;;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;2288:3;;;1553:47875;;;;;;;;2288:3;;;1553:47875;;;;;;;;;;2203:1:169;5497:25:165;;;2203:1:169;1553:47875:165;;:::i;:::-;;;;;;;:::i;:::-;1855:13:169;1553:47875:165;;2383:18:169;1553:47875:165;23662:89:169;;;1553:47875:165;5685:22;;;1553:47875;;-1:-1:-1;;;;;;2203:1:169;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;5772:65;;1553:47875;;;5772:65;1553:47875;5753:16;;;1553:47875;2288:3;2203:1:169;;1553:47875:165;2203:1:169;;;1553:47875:165;5847:33;;;2203:1:169;;-1:-1:-1;;2203:1:169;1553:47875:165;;;2203:1:169;;;1553:47875:165;;-1:-1:-1;;;5951:37:165;;1553:47875;;;;;5951:37;;1553:47875;5951:37;1553:47875;5951:37;;;;;;;;5945:43;5951:37;;;;;5945:43;;:::i;:::-;2366:5;;;;;;;;;;5998:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;6116:49;2446:3;6116:49;1553:47875;6116:49;;1553:47875;2446:3;1553:47875;;;;;;:::i;:::-;;;2446:3;;1553:47875;2446:3;;1553:47875;2446:3;1553:47875;2446:3;;1553:47875;;;;2446:3;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;2203:1:169;;;;;1145:66:27;;1837:24:26;;:71;;;;1553:47875:165;;;;;;2203:1:169;6308:37:165;;;1553:47875;2203:1:169;5227:2:165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;5685:22:165;1705:1673:171;;;;;;;;;;;47733:52:165;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;1705:1673:171;;47979:15:165;;;;47862:13;47881:16;;;;47862:13;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;47862:13;;47877:27;;;;;;;48039:13;48081:3;1553:47875;;48054:25;;;;;1553:47875;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;4821:15;;;;48249:28;4821:15;48249:28;;1553:47875;5064:101:30;;1553:47875:165;;;5064:101:30;1553:47875:165;5140:14:30;1553:47875:165;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;5140:14:30;1553:47875:165;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;1705:1673:171;;;;1553:47875:165;1705:1673:171;;1553:47875:165;-1:-1:-1;;;1553:47875:165;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;2366:5:165;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;2288:3;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;2288:3;;5951:37;1553:47875;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;4977:67:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:47875:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1553:47875:165;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:47875:165;4815:4:60;4807:23;4803:145;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:47875:165;;4908:29:60;1553:47875:165;-1:-1:-1;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:47875:165;4392:4:60;4384:23;;;:120;;;;1553:47875:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;5865:52:60;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;5865:52:60;;;;;;;;1553:47875:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:47875:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;2407:36:53;;;;1553:47875:165;;;;2458:15:53;:11;;4065:25:66;;1553:47875:165;4107:55:66;4065:25;;;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:47875:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:47875:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:47875:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:47875:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:47875:165;;;6026:34:60;;5865:52;;;;1553:47875:165;5865:52:60;;1553:47875:165;5865:52:60;;;;;;1553:47875:165;5865:52:60;;;:::i;:::-;;;1553:47875:165;;;;;5865:52:60;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:47875:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;2971:9:37;2967:62;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3627:22:37;1553:47875:165;;;966:10:34;1553:47875:165;;3627:22:37;1553:47875:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:47875:165;3003:15:37;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;20709:23;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;1553:47875:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;29254:36:165;1553:47875;;;;29254:36;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;29341:70;1553:47875;;;;29378:10;;29341:70;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;-1:-1:-1;;;;;1553:47875:165;29301:134;;;;;1553:47875;;-1:-1:-1;;;29301:134:165;;-1:-1:-1;;;;;1553:47875:165;;;;29301:134;;1553:47875;;;;;;;;;;;;;;;;;;29301:134;1553:47875;;29301:134;;;;;;;;;1553:47875;;;;;;;;29341:70;;;1553:47875;;;;;;;;;;;;;;3980:23:40;;:::i;1553:47875:165:-;;;;;;;;;;;;;;11492:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;11492:22;1553:47875;;;;;;;;;;;;;;;;;;;;;19536:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;19536:51;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:47875:165;36916:19;1948:4:38;36916:19:165;;1553:47875;36916:38;1553:47875;;;;37154:20;37150:295;;1553:47875;37558:27;;;1553:47875;;;;37594:33;1553:47875;37558:69;1553:47875;;;;37693:37;;1553:47875;;;37734:21;1553:47875;;;37734:21;;:::i;:::-;1553:47875;-1:-1:-1;1553:47875:165;;37824:28;1553:47875;;;;37824:28;;:::i;:::-;1553:47875;40813:22;;1553:47875;;40813:22;1553:47875;;;;40813:22;:::i;:::-;2366:5;;;;;;;;1553:47875;2366:5;;;;;;;40948:40;2366:5;;;40948:40;:::i;:::-;40998:18;;;41047:22;;;;;;2366:5;38622:146;2366:5;;;;1083:131:25;;1553:47875:165;37964:30;1553:47875;;;;37964:30;;:::i;:::-;38040:33;1553:47875;;;;38040:33;;:::i;:::-;1553:47875;38173:21;1553:47875;;;37734:21;38173;:::i;:::-;1553:47875;38255:13;;1553:47875;;38255:13;;:::i;:::-;1553:47875;;;20171:303:169;1553:47875:165;20171:303:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;37594:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20171:303:169;;;;;;:::i;:::-;1553:47875:165;20148:336:169;;37558:27:165;;;;;1553:47875;;38527:21;1553:47875;;;37734:21;38527;:::i;:::-;1553:47875;;;;37693:37;;1553:47875;;;;37693:37;;1553:47875;38564:26;1553:47875;;;;;;38564:26;1553:47875;38733:21;1553:47875;;;37734:21;38733;:::i;:::-;1553:47875;;;;38622:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:47875:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:47875;;2113:66;41071:3;41133:22;40813;1553:47875;;40813:22;1553:47875;;;;41133:22;:::i;:::-;1553:47875;;;;;;;;;;;;;41198:19;;;1553:47875;;;;;;;;37558:27;1553:47875;;;;;1948:4:38;41198:79:165;1553:47875;;1948:4:38;1553:47875:165;;;41776:17;1553:47875;;;;;;;;;41356:17;;;;;:::i;:::-;;;;1553:47875;;;;;;;-1:-1:-1;41198:19:165;;;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;41479:39;;;1553:47875;;41479:41;;;:::i;:::-;1553:47875;;41352:270;41674:17;41641:51;41674:17;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;41641:51;41776:17;:::i;:::-;1553:47875;;;;;;17874:159:169;;;;;;;4093:83:22;;;;1553:47875:165;41071:3;1553:47875;41032:13;;;41352:270;1553:47875;;41198:19;1553:47875;;;;;;;;41198:19;1553:47875;;;;;;;;;;41352:270;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;37150:295;37198:56;37240:13;;1553:47875;;37240:13;;:::i;:::-;1553:47875;;;;;37198:56;:::i;:::-;1553:47875;;;;37385:21;1553:47875;;;37385:21;;:::i;:::-;1553:47875;37367:15;:39;37150:295;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:47875:165;1789:30:38;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21027:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;21027:51;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;31297:36:165;1553:47875;;;;31297:36;:::i;:::-;31385:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;31433:96;;;;;;1553:47875;;;;;;;;;;;;31433:96;;1553:47875;;;;;;;;31473:4;;31453:10;1553:47875;31433:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;31565:79:165;;31453:10;1553:47875;31565:79;;1553:47875;31473:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;31565:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;31760:70;1553:47875;;;;31453:10;;31760:70;;-1:-1:-1;;;;;;;;;;;1553:47875:165;31385:20;12604:23;1553:47875;-1:-1:-1;;;;;1553:47875:165;31703:236;;;;;1553:47875;;-1:-1:-1;;;31703:236:165;;-1:-1:-1;;;;;1553:47875:165;;;;31703:236;;1553:47875;;;;;;;;;;;;;;31703:236;1553:47875;;;31703:236;;;;;;;;;;1553:47875;;;;;;;;31760:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;31565:79;;;;1553:47875;31565:79;1553:47875;31565:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;31433:96;;;;;:::i;:::-;1553:47875;;31433:96;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;33365:37:165;1553:47875;;;;33365:37;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;33453:70;1553:47875;;;;33490:10;;33453:70;;33413:136;;;;;1553:47875;;-1:-1:-1;;;33413:136:165;;-1:-1:-1;;;;;1553:47875:165;;;;33413:136;;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;33413:136;1553:47875;-1:-1:-1;33413:136:165;;;;;;;;1553:47875;33413:136;;;33453:70;1553:47875;;;;;;;33413:136;1553:47875;33413:136;;;:::i;:::-;1553:47875;33413:136;;;1553:47875;;;;;;;;;33453:70;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21424:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;21424:52;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;19201:42;-1:-1:-1;;;;;;;;;;;1553:47875:165;19201:42;1553:47875;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;:::o;2224:17::-;1553:47875;;;;;;;:::i;:::-;2224:17;1553:47875;;-1:-1:-1;;;1553:47875:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2203:1:169;;;;;;;;;;1553:47875:165;;;;;;;2203:1:169;:::o;:::-;1553:47875:165;;2203:1:169;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:47875;;;;:::i;:::-;2446:3;;;1553:47875;;;2446:3;;;1553:47875;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47875;;;;;:::i;:::-;2446:3;;;;;;;;1553:47875;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;14401:375::-;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;14653:22:165;;;1553:47875;14605:22;;;;;;14758:11;;;;1553:47875;14401:375;:::o;14629:3::-;14676:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;14652:39;14648:90;;1553:47875;;14590:13;;14648:90;14711:12;;;;1553:47875;14711:12;:::o;1553:47875::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;:::o;2670:66::-;;;;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:47875:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1553:47875:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1553:47875:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;38872:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;;;;1553:47875;39048:38;1553:47875;;;;;39141:19;;;1553:47875;;;;;;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:167;1052:614:22;1553:47875:165;1052:614:22;1888:66:167;4093:83:22;;1998:66:167;1553:47875:165;4093:83:22;;;2108:66:167;1553:47875:165;4093:83:22;;;2218:66:167;2210:6;4093:83:22;;;2328:66:167;2320:6;4093:83:22;;;2438:66:167;2430:6;4093:83:22;;;2548:66:167;2540:6;4093:83:22;;;2658:66:167;2650:6;4093:83:22;;;2768:66:167;2760:6;4093:83:22;;;2878:66:167;2870:6;4093:83:22;;;2988:66:167;2980:6;4093:83:22;;;3098:66:167;3090:6;4093:83:22;;;3208:66:167;3200:6;4093:83:22;;;3318:66:167;3310:6;4093:83:22;;;3428:66:167;3420:6;4093:83:22;;;3538:66:167;3530:6;4093:83:22;;;3648:66:167;3640:6;4093:83:22;;;3758:66:167;3750:6;4093:83:22;;;3868:66:167;3860:6;4093:83:22;;;3978:66:167;3970:6;4093:83:22;;;4088:66:167;4080:6;4093:83:22;;;4198:66:167;4190:6;4093:83:22;;;39601:4:165;4536:2:167;1553:47875:165;4437:66:167;;;;;4436:103;4416:6;4093:83:22;;;4592:66:167;4584:6;4093:83:22;;;39478:135:165;4670:150:167;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;:::-;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;39732:32;;1553:47875;;39732:32;39775:24;38872:934;:::o;1553:47875::-;;;;;;;;;38872:934;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;31328:4;39048:19;;1553:47875;39048:38;1553:47875;;;-1:-1:-1;1553:47875:165;39141:19;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;-1:-1:-1;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;-1:-1:-1;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:168;1052:614:22;1553:47875:165;1052:614:22;2041:66:168;4093:83:22;;39540:4:165;1052:614:22;1553:47875:165;2187:66:168;2186:105;1553:47875:165;4093:83:22;;;2342:66:168;1553:47875:165;4093:83:22;;;-1:-1:-1;2420:150:168;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;22859:532:169:-;22984:12;-1:-1:-1;;2288:3:165;;;22859:532:169;;2288:3:165;;;;1553:47875;;22984:12:169;23024:22;;22984:12;;23024:50;1553:47875:165;23024:50:169;;23108:8;;;;;;23084:278;-1:-1:-1;1553:47875:165;;-1:-1:-1;;22859:532:169:o;23089:17::-;23147:12;;23177:11;;;;;-1:-1:-1;22999:1:169;;-1:-1:-1;;;23208:11:169:o;23173:119::-;23244:8;23240:52;;-1:-1:-1;;1553:47875:165;23089:17:169;;23240:52;23272:5;;23024:50;23053:21;22984:12;;23053:21;:::i;:::-;23024:50;;;1553:47875:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;39812:846::-;;39940:22;;;39973:1;39940:22;;;;:::i;:::-;:34;;;1553:47875;;40017:22;;;;:::i;:::-;:34;;;40013:177;;40244:22;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;40334:23;;;;;:::i;:::-;2366:5;;;;1553:47875;2366:5;;;;;45846:2;2366:5;;;;;;;45892:36;;;;;;:::i;:::-;45938:18;1553:47875;45972:13;1553:47875;;46107:28;1553:47875;;;;;;46107:28;;45967:685;46007:3;45987:18;;;;;;1553:47875;;;;;;;;;;;;;;46136:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;46107:53;1553:47875;;;39940:22;46230:25;;-1:-1:-1;;;;;46230:25:165;;;:::i;:::-;1553:47875;46230:30;;:72;;;46007:3;46226:144;;46007:3;-1:-1:-1;;;;;46417:18:165;;;:::i;:::-;1553:47875;;-1:-1:-1;;;46409:76:165;;45846:2;46409:76;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;:::i;:::-;;;;;;45846:2;1553:47875;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;41641:51;1553:47875;;;;;;;;;;;;45846:2;1553:47875;;;;;;;;;;;;;;;;;;;;;;;46409:76;;;;;;;45846:2;46409:76;;-1:-1:-1;;;;;46409:76:165;;;;1553:47875;;46409:76;;;;;;;;1553:47875;46409:76;;;1553:47875;4093:83:22;;45846:2:165;4093:83:22;39973:1:165;4093:83:22;;;;1553:47875:165;46007:3;1553:47875;45972:13;;;46409:76;;;45846:2;46409:76;;;;;;;;;1553:47875;46409:76;;;:::i;:::-;;;1553:47875;;;;;39973:1;46409:76;;;;;-1:-1:-1;46409:76:165;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;45846:2;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;45846:2;1553:47875;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;39940:22;1553:47875;;;:::i;:::-;;;;;;;;;;39940:22;1553:47875;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;;;;39973:1;1553:47875;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39973:1;1553:47875;;;;;;;;;;;45846:2;1553:47875;;;:::i;:::-;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;46226:144;46330:25;;;;;:::i;:::-;46226:144;;;46230:72;46265:37;;1553:47875;46265:37;;;:::i;:::-;46264:38;46230:72;;45987:18;;;;;;;;;;1083:131:25;40386:16:165;1553:47875;45846:2;40386:16;;1553:47875;;40374:29;45846:2;1553:47875;;;;;40374:29;40417:32;1553:47875;40417:46;40413:127;;45967:685;1553:47875;;17498:64:169;45846:2:165;17498:64:169;;1553:47875:165;;;;;;;;;;;;17498:64:169;;;39940:22:165;17498:64:169;;:::i;:::-;1553:47875:165;17488:75:169;;39812:846:165;:::o;40413:127::-;40484:45;45846:2;1553:47875;;;;;40484:45;40413:127;;40013:177;40159:20;;;40166:13;40159:20;:::o;1553:47875::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;42108:1705::-;42238:24;;;42273:1;42238:24;;;;:::i;:::-;:36;;;1553:47875;;42319:24;;;;:::i;:::-;:36;;;42315:179;;42550:24;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;42596:21;;;;;42620;42596;;;:::i;:::-;42620;;;1553:47875;42620:21;;;;:::i;:::-;1553:47875;;;42596:45;1553:47875;;;42699:21;;;:::i;:::-;1553:47875;42724:29;;;;1553:47875;42620:21;1553:47875;;;;42699:54;1553:47875;;42910:46;1553:47875;42934:21;42830:46;42854:21;;;;:::i;:::-;1553:47875;42830:46;;:::i;:::-;42934:21;;:::i;:::-;1553:47875;42910:46;;:::i;:::-;-1:-1:-1;1553:47875:165;;;43078:31;;;1553:47875;43147:32;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;43246:19;;;;1553:47875;;;;42620:21;;1553:47875;43134:144;43215:62;42620:21;43246:19;;1553:47875;43246:19;:::i;:::-;:31;1553:47875;43215:62;;:::i;:::-;43246:19;1553:47875;;;;;;;;;43134:144;;;;;;1553:47875;;;;;43134:144;;;;;;;1553:47875;43134:144;;;42108:1705;1553:47875;;;;;43246:19;1553:47875;-1:-1:-1;;;43368:185:165;;-1:-1:-1;;;;;1553:47875:165;;;43134:144;43368:185;;1553:47875;;;;;;;;42620:21;43513:26;;;1553:47875;43134:144;1553:47875;;;;43368:185;1553:47875;-1:-1:-1;43368:185:165;;;;;;;;1553:47875;43368:185;;;42108:1705;43654:19;;;;;:::i;:::-;43675:21;;;;:::i;:::-;1553:47875;43246:19;1553:47875;;;;;43605:92;;43246:19;43134:144;43605:92;;1553:47875;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;43147:32;1553:47875;;;;;;;42596:21;43134:144;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;;;;;;;43368:185;1553:47875;;;;43246:19;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;43605:92;;;;;;;;;1553:47875;43605:92;;;1553:47875;43784:21;;;;:::i;:::-;43246:19;1553:47875;18547:70:169;42620:21:165;18547:70:169;;1553:47875:165;;;43246:19;1553:47875;;;;;;;;;;42596:21;1553:47875;;;18547:70:169;;;;;;;:::i;43605:92:165:-;;;;42620:21;43605:92;;42620:21;43605:92;;;;;;1553:47875;43605:92;;;:::i;:::-;;;1553:47875;;;;;;43784:21;43605:92;;;;;-1:-1:-1;43605:92:165;;1553:47875;;;;;;;43246:19;1553:47875;42273:1;1553:47875;;;;;;;;;:::i;:::-;;;;42620:21;1553:47875;;;42620:21;1553:47875;;;;;;;;;;;;;;;;43368:185;;;;;42620:21;43368:185;;42620:21;43368:185;;;;;;1553:47875;43368:185;;;:::i;:::-;;;1553:47875;;;;;;;43654:19;43368:185;;;;;-1:-1:-1;43368:185:165;;1553:47875;;;;;;43134:144;1553:47875;;43134:144;;;;42620:21;43134:144;42620:21;43134:144;;;;;;;:::i;:::-;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;43880:1705::-;;44013:27;;;44051:1;44013:27;;;;:::i;:::-;:39;;;1553:47875;;44100:27;;;;:::i;:::-;:39;;;44096:182;;44337:27;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;44386:22;;;;;;;:::i;:::-;:33;;;1553:47875;;;44553:29;;;1553:47875;;;;44535:15;:47;:15;;:47;:::i;:::-;44534:72;44586:16;;;1553:47875;44534:72;;;:::i;:::-;44625:20;;;;1553:47875;2670:66;44051:1;2670:66;;;;;;;44625:43;;1553:47875;;44759:43;;44727:75;44759:43;;:::i;:::-;44727:75;;:::i;:::-;44854:25;44839:40;44854:25;;;1553:47875;44839:40;;:::i;:::-;44535:15;44820:59;1553:47875;;44998:34;;;:::i;:::-;45050:28;1553:47875;45050:28;;44535:15;;1553:47875;;45050:46;1553:47875;;;45245:34;;;:::i;:::-;45293:31;1553:47875;45293:31;;45338:45;;;;;2446:3;;45338:45;;;;:::i;:::-;45397:22;;;;;;:::i;:::-;1553:47875;;;2446:3;1553:47875;2446:3;;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;47096:752;;;43880:1705;47862:13;;1553:47875;47862:13;;;47881:16;1553:47875;47881:16;;;47979:15;;47857:168;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;44051:1;1553:47875;47862:13;;47877:27;;;;;;;;;;1553:47875;48081:3;1553:47875;;48054:25;;;;;44051:1;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;;;;;;45471:47;1553:47875;;;;;;45471:47;1553:47875;;;;;;;;;;44625:20;1553:47875;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45338:45;1553:47875;;;;44386:22;1553:47875;;;;;;18992:30:169;;2203:1;1553:47875:165;2203:1:169;;19042:32;;2203:1;1553:47875:165;;;18907:257:169;;;1553:47875:165;18907:257:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;18907:257:169;;;;;;1553:47875:165;18907:257:169;;;:::i;1553:47875:165:-;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;44051:1;1553:47875;;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;44051:1;1553:47875;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;47096:752;2203:1:169;;47557:25:165;1553:47875;47557:25;;2203:1:169;;;1145:66:27;;1837:24:26;;:71;;;;47096:752:165;1553:47875;;;;;2203:1:169;1553:47875:165;;2203:1:169;44051::165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;;;;1553:47875:165;1705:1673:171;;;;;;;44553:29:165;47733:52;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;47096:752:165;;1705:1673:171;;1553:47875:165;1705:1673:171;;;;1553:47875:165;;;;;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24604:3813:169;;;;;;1553:47875:165;32602:29:169;;;1553:47875:165;;;;32634:22:169;24973:15;32634:22;;:::i;:::-;32602:77;32634:45;32659:16;;;1553:47875:165;32634:45:169;;;:::i;:::-;32602:77;;:::i;:::-;25003:15;;;;;;:82;;24604:3813;24999:676;;;25109:35;;;1553:47875:165;;25194:25:169;;;;:::i;:::-;:39;1553:47875:165;;25769:24:169;24999:676;;25769:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:47875:165;3226:200:80;25834:4:169;3226:200:80;;32602:29:169;3226:200:80;32659:16:169;3226:200:80;;1553:47875:165;3226:200:80;1553:47875:165;32602:29:169;1553:47875:165;;;;;25897:37:169;;;25958:23;;32602:19;25958:23;;1553:47875:165;;;;;;;2446:3;1553:47875;;:::i;:::-;2446:3;;;:::i;:::-;1553:47875;3226:200:80;1553:47875:165;;26089:23:169;1553:47875:165;;26279:240:169;1553:47875:165;26800:272:169;26279:240;;;3226:200:80;26279:240:169;;;;;;;1553:47875:165;32602:19:169;1553:47875:165;;26889:32:169;;1553:47875:165;26800:272:169;;:::i;1553:47875:165:-;;;;;;;;;;;;;;;;;;25893:2495:169;1553:47875:165;;;32602:19:169;27093:37;27089:1299;;25893:2495;;;;;1553:47875:165;24604:3813:169;:::o;27089:1299::-;27166:199;27203:15;27243:25;27203:15;;;;;1553:47875:165;27243:25:169;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;27166:199:169;;:::i;:::-;27380:27;1553:47875:165;27427:13:169;27623:14;1553:47875:165;27623:14:169;;27422:929;27466:3;27442:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:47875;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;27619:718:169;;27466:3;;32602:19;27466:3;27427:13;1553:47875:165;27427:13:169;;27619:718;-1:-1:-1;;;;;2780:163:73;1553:47875:165;2780:163:73;;;2113:66:165;1553:47875;2780:163:73;;;;3327:69:76;;27982:50:169;;;28060:8;32602:19;28060:8;;;27978:223;3556:68:76;32602:19:169;28227:17;3556:68:76;;;28227:17:169;:::i;:::-;:30;;;;28223:96;;27619:718;;;28223:96;28285:11;;;;;;;32602:19;28285:11;:::o;27442:22::-;;;;;;;;1553:47875:165;28365:12:169;:::o;1553:47875:165:-;;;;;;;;;;;;;;;;;;24999:676:169;24973:15;;;;;;25468:21;;1553:47875:165;;25769:24:169;25526:69;;;24999:676;;;;25526:69;25565:15;;25526:69;;;1553:47875:165;;;;;;;;;25003:82:169;25053:32;25040:45;25053:32;;;1553:47875:165;25040:45:169;;:::i;:::-;24973:15;25022:63;25003:82;;23884:229;1553:47875:165;;:::i;:::-;;;24062:12:169;15374:24:83;15370:103;;1553:47875:165;837:15:87;14374:24:83;14370:103;;1553:47875:165;;;;;:::i;:::-;24032:1:169;1553:47875:165;;;24062:12:169;1553:47875:165;24000:106:169;;;1553:47875:165;;837:15:87;1553:47875:165;;24000:106:169;;1553:47875:165;23884:229:169;:::o;14370:103:83:-;15421:41;;;24032:1:169;14421:41:83;14452:2;14421:41;1553:47875:165;837:15:87;1553:47875:165;;;24032:1:169;14421:41:83;15370:103;15421:41;;;24032:1:169;15421:41:83;15452:2;15421:41;1553:47875:165;24062:12:169;1553:47875:165;;;24032:1:169;15421:41:83;1553:47875:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31451:456:169;-1:-1:-1;;;;;31451:456:169;;1553:47875:165;;;;31760:24:169;;;;:::i;:::-;1553:47875:165;;;;;;31872:5:169;1553:47875:165;;31885:1:169;1553:47875:165;31451:456:169;:::o;1553:47875:165:-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;32092:179:169:-;32244:16;32206:34;32205:59;32092:179;1553:47875:165;32211:29:169;;;1553:47875:165;;;;32206:34:169;;:::i;:::-;32244:16;;1553:47875:165;32205:59:169;;:::i;28908:322::-;29028:50;29062:15;29028:50;;:::i;:::-;29062:15;;;29101:37;;29094:44;:::o;29024:200::-;29176:37;;29169:44;:::o;29367:312::-;;29490:37;29367:312;29490:37;;:::i;:::-;;;;29550;;29543:44;:::o;29486:187::-;29625:37;;29618:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;2670:66:165;4010:31:20;;;:::i;:::-;1553:47875:165;425:3:20;1553:47875:165;;;4003:1:27;2933;2929:5;;1553:47875:165;425:3:20;4492:84:22;;;4093:83;2670:66:165;4093:83:22;;;4003:1:27;1553:47875:165;;2670:66;4492:84:22;;;2670:66:165;4093:83:22;;;;;2670:66:165;4093:83:22;;;1581:66:20;2670::165;4093:83:22;;;-1:-1:-1;;;2670:66:165;4093:83:22;;;531:131:25;;2670:66:165;4093:83:22;;;;;;4003:1:27;2670:66:165;4492:84:22;;2933:1:27;4492:84:22;;2670:66:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;2670:66:165;1145::27;;531:131:25;;6084:3:20;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;6084:3:20;1553:47875:165;;6062:44:20;1145:66:27;;;1860::20;1553:47875:165;1860:66:20;;1553:47875:165;6037:2:20;1553:47875:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:47875:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:47875:165;4093:83:22;;1553:47875:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:47875:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:47875:165;1640:140:24;3543:209:25;1553:47875:165;3543:209:25;648:2:20;3543:209:25;1553:47875:165;;;;;6037:2:20;1553:47875:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:47875:165;8070:12:20;:::o;4016:191:40:-;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:47875:165;;4107:92:40;;;;1553:47875:165;1959:95:40;1553:47875:165;;;1959:95:40;;1553:47875:165;1959:95:40;;;1553:47875:165;4170:13:40;1959:95;;;1553:47875:165;4193:4:40;1959:95;;;1553:47875:165;1959:95:40;4107:92;;;;;;:::i;7082:141:30:-;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;33026:467:169;1553:47875:165;;:::i;:::-;-1:-1:-1;33330:51:169;;;1553:47875:165;33448:27:169;;;1553:47875:165;;;;;;;;33401:15:169;;-1:-1:-1;;;;;1553:47875:165;;;;:::i;:::-;;;;:::i;:::-;;;33189:297:169;;;2288:3:165;33401:15:169;1553:47875:165;:::i;:::-;;33189:297:169;;1553:47875:165;33189:297:169;;;1553:47875:165;33026:467:169;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:47875:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1553:47875:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:47875:165;7462:38:77;;1553:47875:165;;7523:23:77;;;7375:20;7523:23;1553:47875:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:47875:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1553:47875:165;;;7375:20:77;7763:32;30086:863:169;;30332:54;30254;;;1553:47875:165;30332:54:169;;1553:47875:165;30460:10:169;;;1553:47875:165;;30531:9:169;;;;30563;;;;;30595;;;30696:14;;;;;30086:863;1553:47875:165;;;30912:30:169;;;30905:37;;30086:863;:::o;30912:30::-;30927:14;;30086:863;-1:-1:-1;30086:863:169:o;1553:47875:165:-;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;30696:14:169;;;;;1553:47875:165;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;2129:778:77;1553:47875:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;1767:250:27:-;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;6928:687:40:-;1553:47875:165;;:::i;:::-;;;;7100:22:40;;;;1553:47875:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:47875:165;;:::i;:::-;;;;8017:25:40;;;;1553:47875:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1553:47875:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:47875:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1553:47875:165;;;;4933:24:66;1553:47875:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":10287,"length":32},{"start":10434,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"1622441d","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":"ee32004f","createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":"0d91bf2a","eip712Domain()":"84b0196e","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":"8c4ace6a","requestCodeValidationBaseFee()":"188509e9","requestCodeValidationExtraFee()":"f1ef31ec","requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":"f0fd702a","setMirror(address)":"3d43b418","setRequestCodeValidationBaseFee(uint256)":"11bec80d","setRequestCodeValidationExtraFee(uint256)":"0b9737ce","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedBlobHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidBlobHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"InvalidBlobHashesLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"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\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"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\"}],\"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\":\"bytes32\",\"name\":\"ethBlockHash\",\"type\":\"bytes32\"}],\"name\":\"EBCommitted\",\"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\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"MBCommitted\",\"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\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"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\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastAdvancedEthBlock\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasAggregatedPublicKey\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"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\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithAbiInterfaceAndExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"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\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"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\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"_blobHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v1\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s1\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_v2\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s2\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidationOnBehalf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExtraFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationExtraFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxValidators\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationBaseFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationExtraFee\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BlobNotFound()\":[{\"details\":\"Thrown when the tx is not in EIP-4844/EIP-7594 format, so it doesn't have blobhashes.\"}],\"CodeAlreadyOnValidationOrValidated()\":[{\"details\":\"Thrown when the code is already on validation or validated.\"}],\"CodeNotValidated()\":[{\"details\":\"Thrown when the code is not validated and someone tries to create program with it.\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"EraDurationTooShort()\":[{\"details\":\"Thrown when the era duration is too short (era duration must be greater than election duration).\"}],\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ExpiredSignature(uint256)\":[{\"details\":\"Thrown when deadline for code validation request has expired.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenesisHashAlreadySet()\":[{\"details\":\"Thrown when the genesis hash is already set by someone else.\"}],\"GenesisHashNotFound()\":[{\"details\":\"Thrown when the genesis hash is not found from previous blocks. There is 256 blocks lookback for `blockhash` opcode, so if the genesis block is too old, it may not be found.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidBlobHash(uint256,bytes32,bytes32)\":[{\"details\":\"Thrown when the blobhash for code validation request is invalid.\"}],\"InvalidBlobHashesLength(uint256,uint256)\":[{\"details\":\"Thrown when the provided blob hashes length doesn't match the actual blob hashes length in transaction.\"}],\"InvalidElectionDuration()\":[{\"details\":\"Thrown when an invalid election duration is provided (must be greater than 0).\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidSigner(address,address)\":[{\"details\":\"Thrown when the signer of the code validation request is not the requester.\"}],\"InvalidTimestamp()\":[{\"details\":\"Thrown when an invalid block.timestamp is provided (must be greater than 0).\"}],\"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.\"}],\"RouterGenesisHashNotInitialized()\":[{\"details\":\"Thrown when the router's genesis hash is not initialized (no one called `lookupGenesisHash` yet).\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidationDelayTooBig()\":[{\"details\":\"Thrown when the validation delay is too big.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"events\":{\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch hash (`keccak256` algorithm), see `Gear.batchCommitmentHash(...)`.\"}},\"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. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, one the client side it's calculated as `gprimitives::CodeId::generate(wasm_code)`.\"}},\"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.\"}},\"EBCommitted(bytes32)\":{\"details\":\"Lets observers update `last_committed_eb` so the producer can decide when to issue a checkpoint batch even with no transitions.\",\"params\":{\"ethBlockHash\":\"Latest Ethereum block hash whose events were folded into the chain commitment's MB head.\"}},\"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.\"},\"MBCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"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. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\"}},\"StorageSlotChanged(bytes32)\":{\"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.\",\"params\":{\"slot\":\"The new storage slot.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\",\"returns\":{\"_0\":\"domainSeparator The domain separator.\"}},\"areValidators(address[])\":{\"details\":\"Checks if the given addresses are all validators.\",\"returns\":{\"_0\":\"areValidators `true` if all addresses are validators, `false` otherwise.\"}},\"codeState(bytes32)\":{\"details\":\"Returns the state of code.\",\"returns\":{\"_0\":\"codeState The state of the code.\"}},\"codesStates(bytes32[])\":{\"details\":\"Returns the states of multiple codes.\",\"returns\":{\"_0\":\"codesStates The states of the codes.\"}},\"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])\":{\"details\":\"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\",\"params\":{\"_batch\":\"The batch commitment data.\",\"_signatureType\":\"The type of signature to validate.\",\"_signatures\":\"The signatures for the batch commitment.\"}},\"computeSettings()\":{\"details\":\"Returns the computation settings.\",\"returns\":{\"_0\":\"computeSettings The computation settings.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createProgram(bytes32,bytes32,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterface(bytes32,bytes32,address,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"genesisBlockHash()\":{\"details\":\"Returns the hash of the genesis block.\",\"returns\":{\"_0\":\"genesisBlockHash The hash of the genesis block.\"}},\"genesisTimestamp()\":{\"details\":\"Returns the timestamp of the genesis block.\",\"returns\":{\"_0\":\"genesisTimestamp The timestamp of the genesis block.\"}},\"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])\":{\"details\":\"Initializes the `Router` with the given parameters.\",\"params\":{\"_aggregatedPublicKey\":\"The optional aggregated public key of the initial validators. Will be used in future.\",\"_electionDuration\":\"The duration of an election in seconds.\",\"_eraDuration\":\"The duration of an era in seconds.\",\"_middleware\":\"The address of the middleware contract.\",\"_mirror\":\"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\",\"_owner\":\"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\",\"_validationDelay\":\"The delay before validators can start validating in seconds.\",\"_validators\":\"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.\",\"_verifiableSecretSharingCommitment\":\"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\",\"_wrappedVara\":\"The address of the `WrappedVara` (WVARA) ERC20 token contract.\"}},\"isValidator(address)\":{\"details\":\"Checks if the given address is a validator.\",\"returns\":{\"_0\":\"isValidator `true` if the address is a validator, `false` otherwise.\"}},\"latestCommittedBatchHash()\":{\"details\":\"Returns the hash of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchHash The hash of the latest committed batch.\"}},\"latestCommittedBatchTimestamp()\":{\"details\":\"Returns the timestamp of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchTimestamp The timestamp of the latest committed batch.\"}},\"lookupGenesisHash()\":{\"details\":\"Looks up the genesis hash from previous blocks.\"},\"middleware()\":{\"details\":\"Returns the address of the middleware implementation.\",\"returns\":{\"_0\":\"middleware The address of the middleware implementation.\"}},\"mirrorImpl()\":{\"details\":\"Returns the address of the mirror implementation.\",\"returns\":{\"_0\":\"mirrorImpl The address of the mirror implementation.\"}},\"nonces(address)\":{\"details\":\"Returns the next unused nonce for an address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\",\"returns\":{\"_0\":\"isPaused `true` if the contract is paused, `false` otherwise.\"}},\"programCodeId(address)\":{\"details\":\"Returns the code ID of the given program.\",\"returns\":{\"_0\":\"codeId The code ID of the program.\"}},\"programsCodeIds(address[])\":{\"details\":\"Returns the code IDs of the given programs.\",\"returns\":{\"_0\":\"codesIds The code IDs of the programs.\"}},\"programsCount()\":{\"details\":\"Returns the count of programs.\",\"returns\":{\"_0\":\"programsCount The count of programs.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\",\"details\":\"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!\"},\"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.\"},\"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.\",\"params\":{\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\"}},\"requestCodeValidationBaseFee()\":{\"details\":\"Returns the base fee for requesting code validation in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationBaseFee The base fee for requesting code validation.\"}},\"requestCodeValidationExtraFee()\":{\"details\":\"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else.\"}},\"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.\",\"params\":{\"_blobHashes\":\"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.\",\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_r2\":\"ECDSA signature parameter (for permit).\",\"_requester\":\"The address of the requester on behalf of whom the code validation is requested.\",\"_s1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_s2\":\"ECDSA signature parameter (for permit).\",\"_v1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_v2\":\"ECDSA signature parameter (for permit).\"}},\"setMirror(address)\":{\"details\":\"Sets the `Mirror` implementation address.\",\"params\":{\"newMirror\":\"The new mirror implementation address.\"}},\"setRequestCodeValidationBaseFee(uint256)\":{\"details\":\"Sets the base fee for requesting code validation in WVARA ERC20 token.\",\"params\":{\"newBaseFee\":\"The new base fee for requesting code validation.\"}},\"setRequestCodeValidationExtraFee(uint256)\":{\"details\":\"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"params\":{\"newExtraFee\":\"The new extra fee for requesting code validation on behalf of someone else.\"}},\"signingThresholdFraction()\":{\"details\":\"Returns the signing threshold fraction.\",\"returns\":{\"thresholdDenominator\":\"The denominator of the signing threshold fraction.\",\"thresholdNumerator\":\"The numerator of the signing threshold fraction.\"}},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\",\"returns\":{\"_0\":\"storageView The storage view of the contract storage.\"}},\"timelines()\":{\"details\":\"Returns the timelines.\",\"returns\":{\"_0\":\"timelines The timelines.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses the contract.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"validatedCodesCount()\":{\"details\":\"Returns the count of validated codes.\",\"returns\":{\"_0\":\"validatedCodesCount The count of validated codes.\"}},\"validators()\":{\"details\":\"Returns the list of current validators.\",\"returns\":{\"_0\":\"validators The list of current validators.\"}},\"validatorsAggregatedPublicKey()\":{\"details\":\"Returns the aggregated public key of the current validators.\",\"returns\":{\"_0\":\"validatorsAggregatedPublicKey The aggregated public key of the current validators.\"}},\"validatorsCount()\":{\"details\":\"Returns the count of current validators.\",\"returns\":{\"_0\":\"validatorsCount The count of current validators.\"}},\"validatorsThreshold()\":{\"details\":\"Returns the threshold number of validators required for a valid signature.\",\"returns\":{\"_0\":\"threshold The threshold number of validators required for a valid signature.\"}},\"validatorsVerifiableSecretSharingCommitment()\":{\"details\":\"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\",\"returns\":{\"_0\":\"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators.\"}},\"wrappedVara()\":{\"details\":\"Returns the address of the wrapped Vara implementation.\",\"returns\":{\"_0\":\"wrappedVara The address of the wrapped Vara implementation.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"EBCommitted(bytes32)\":{\"notice\":\"Emitted when a chain commitment carrying a `lastAdvancedEthBlock` lands on-chain.\"},\"MBCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Router.sol\":{\"keccak256\":\"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036\",\"dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3\",\"dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b\",\"dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389\",\"dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"providedBlobHash","type":"bytes32"},{"internalType":"bytes32","name":"expectedBlobHash","type":"bytes32"}],"type":"error","name":"InvalidBlobHash"},{"inputs":[{"internalType":"uint256","name":"providedLength","type":"uint256"},{"internalType":"uint256","name":"expectedLength","type":"uint256"}],"type":"error","name":"InvalidBlobHashesLength"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"requester","type":"address"}],"type":"error","name":"InvalidSigner"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"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":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","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}],"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":"bytes32","name":"ethBlockHash","type":"bytes32","indexed":false}],"type":"event","name":"EBCommitted","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":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"MBCommitted","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":"account","type":"address","indexed":false}],"type":"event","name":"Paused","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":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"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":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"},{"internalType":"bytes32","name":"lastAdvancedEthBlock","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"bool","name":"hasAggregatedPublicKey","type":"bool"},{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"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"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithAbiInterfaceAndExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"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":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"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":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"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":"requestCodeValidation"},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_requester","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32[]","name":"_blobHashes","type":"bytes32[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v1","type":"uint8"},{"internalType":"bytes32","name":"_r1","type":"bytes32"},{"internalType":"bytes32","name":"_s1","type":"bytes32"},{"internalType":"uint8","name":"_v2","type":"uint8"},{"internalType":"bytes32","name":"_r2","type":"bytes32"},{"internalType":"bytes32","name":"_s2","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidationOnBehalf"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"uint256","name":"newBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationBaseFee"},{"inputs":[{"internalType":"uint256","name":"newExtraFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationExtraFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"},{"internalType":"uint16","name":"maxValidators","type":"uint16"},{"internalType":"uint256","name":"requestCodeValidationBaseFee","type":"uint256"},{"internalType":"uint256","name":"requestCodeValidationExtraFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"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":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"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":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.","returns":{"_0":"domainSeparator The domain separator."}},"areValidators(address[])":{"details":"Checks if the given addresses are all validators.","returns":{"_0":"areValidators `true` if all addresses are validators, `false` otherwise."}},"codeState(bytes32)":{"details":"Returns the state of code.","returns":{"_0":"codeState The state of the code."}},"codesStates(bytes32[])":{"details":"Returns the states of multiple codes.","returns":{"_0":"codesStates The states of the codes."}},"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":{"details":"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.","params":{"_batch":"The batch commitment data.","_signatureType":"The type of signature to validate.","_signatures":"The signatures for the batch commitment."}},"computeSettings()":{"details":"Returns the computation settings.","returns":{"_0":"computeSettings The computation settings."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createProgram(bytes32,bytes32,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterface(bytes32,bytes32,address,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"genesisBlockHash()":{"details":"Returns the hash of the genesis block.","returns":{"_0":"genesisBlockHash The hash of the genesis block."}},"genesisTimestamp()":{"details":"Returns the timestamp of the genesis block.","returns":{"_0":"genesisTimestamp The timestamp of the genesis block."}},"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":{"details":"Initializes the `Router` with the given parameters.","params":{"_aggregatedPublicKey":"The optional aggregated public key of the initial validators. Will be used in future.","_electionDuration":"The duration of an election in seconds.","_eraDuration":"The duration of an era in seconds.","_middleware":"The address of the middleware contract.","_mirror":"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.","_owner":"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.","_validationDelay":"The delay before validators can start validating in seconds.","_validators":"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.","_verifiableSecretSharingCommitment":"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.","_wrappedVara":"The address of the `WrappedVara` (WVARA) ERC20 token contract."}},"isValidator(address)":{"details":"Checks if the given address is a validator.","returns":{"_0":"isValidator `true` if the address is a validator, `false` otherwise."}},"latestCommittedBatchHash()":{"details":"Returns the hash of the latest committed batch.","returns":{"_0":"latestCommittedBatchHash The hash of the latest committed batch."}},"latestCommittedBatchTimestamp()":{"details":"Returns the timestamp of the latest committed batch.","returns":{"_0":"latestCommittedBatchTimestamp The timestamp of the latest committed batch."}},"lookupGenesisHash()":{"details":"Looks up the genesis hash from previous blocks."},"middleware()":{"details":"Returns the address of the middleware implementation.","returns":{"_0":"middleware The address of the middleware implementation."}},"mirrorImpl()":{"details":"Returns the address of the mirror implementation.","returns":{"_0":"mirrorImpl The address of the mirror implementation."}},"nonces(address)":{"details":"Returns the next unused nonce for an address."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pauses the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise.","returns":{"_0":"isPaused `true` if the contract is paused, `false` otherwise."}},"programCodeId(address)":{"details":"Returns the code ID of the given program.","returns":{"_0":"codeId The code ID of the program."}},"programsCodeIds(address[])":{"details":"Returns the code IDs of the given programs.","returns":{"_0":"codesIds The code IDs of the programs."}},"programsCount()":{"details":"Returns the count of programs.","returns":{"_0":"programsCount The count of programs."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":"","details":"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!"},"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."},"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.","params":{"_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter."}},"requestCodeValidationBaseFee()":{"details":"Returns the base fee for requesting code validation in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationBaseFee The base fee for requesting code validation."}},"requestCodeValidationExtraFee()":{"details":"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."}},"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.","params":{"_blobHashes":"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.","_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r1":"ECDSA signature parameter (for requestCodeValidation).","_r2":"ECDSA signature parameter (for permit).","_requester":"The address of the requester on behalf of whom the code validation is requested.","_s1":"ECDSA signature parameter (for requestCodeValidation).","_s2":"ECDSA signature parameter (for permit).","_v1":"ECDSA signature parameter (for requestCodeValidation).","_v2":"ECDSA signature parameter (for permit)."}},"setMirror(address)":{"details":"Sets the `Mirror` implementation address.","params":{"newMirror":"The new mirror implementation address."}},"setRequestCodeValidationBaseFee(uint256)":{"details":"Sets the base fee for requesting code validation in WVARA ERC20 token.","params":{"newBaseFee":"The new base fee for requesting code validation."}},"setRequestCodeValidationExtraFee(uint256)":{"details":"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","params":{"newExtraFee":"The new extra fee for requesting code validation on behalf of someone else."}},"signingThresholdFraction()":{"details":"Returns the signing threshold fraction.","returns":{"thresholdDenominator":"The denominator of the signing threshold fraction.","thresholdNumerator":"The numerator of the signing threshold fraction."}},"storageView()":{"details":"Returns the storage view of the contract storage.","returns":{"_0":"storageView The storage view of the contract storage."}},"timelines()":{"details":"Returns the timelines.","returns":{"_0":"timelines The timelines."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"details":"Unpauses the contract."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"validatedCodesCount()":{"details":"Returns the count of validated codes.","returns":{"_0":"validatedCodesCount The count of validated codes."}},"validators()":{"details":"Returns the list of current validators.","returns":{"_0":"validators The list of current validators."}},"validatorsAggregatedPublicKey()":{"details":"Returns the aggregated public key of the current validators.","returns":{"_0":"validatorsAggregatedPublicKey The aggregated public key of the current validators."}},"validatorsCount()":{"details":"Returns the count of current validators.","returns":{"_0":"validatorsCount The count of current validators."}},"validatorsThreshold()":{"details":"Returns the threshold number of validators required for a valid signature.","returns":{"_0":"threshold The threshold number of validators required for a valid signature."}},"validatorsVerifiableSecretSharingCommitment()":{"details":"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.","returns":{"_0":"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."}},"wrappedVara()":{"details":"Returns the address of the wrapped Vara implementation.","returns":{"_0":"wrappedVara The address of the wrapped Vara implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f","urls":["bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036","dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7","urls":["bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3","dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70","urls":["bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b","dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd","urls":["bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389","dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":82354,"exportedSymbols":{"Clones":[82749],"ClonesSmall":[82833],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84099],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82353],"SSTORE2":[84555],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:49355:165","nodes":[{"id":79429,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79431,"nodeType":"ImportDirective","src":"100:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79430,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79433,"nodeType":"ImportDirective","src":"202:98:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79432,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79435,"nodeType":"ImportDirective","src":"301:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79434,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79437,"nodeType":"ImportDirective","src":"404:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79436,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79439,"nodeType":"ImportDirective","src":"545:111:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79438,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79441,"nodeType":"ImportDirective","src":"657:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79440,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79443,"nodeType":"ImportDirective","src":"746:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79442,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79445,"nodeType":"ImportDirective","src":"827:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79444,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79447,"nodeType":"ImportDirective","src":"902:75:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79446,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79449,"nodeType":"ImportDirective","src":"978:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79448,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79451,"nodeType":"ImportDirective","src":"1031:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79450,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79453,"nodeType":"ImportDirective","src":"1092:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79452,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79455,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79454,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79457,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":79456,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79459,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":79458,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79461,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":79460,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79463,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":82750,"symbolAliases":[{"foreign":{"id":79462,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79465,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":82834,"symbolAliases":[{"foreign":{"id":79464,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79467,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":79466,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79469,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":84556,"symbolAliases":[{"foreign":{"id":79468,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82353,"nodeType":"ContractDefinition","src":"1553:47875:165","nodes":[{"id":79486,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":79489,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":79492,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79490,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:17:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":79495,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79493,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2288:3:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":79498,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79496,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2366:5:165","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":79501,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:3:165","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":79504,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:66:165","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":79512,"nodeType":"FunctionDefinition","src":"2811:53:165","nodes":[],"body":{"id":79511,"nodeType":"Block","src":"2825:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79508,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2835:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2835:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79510,"nodeType":"ExpressionStatement","src":"2835:22:165"}]},"documentation":{"id":79505,"nodeType":"StructuredDocumentation","src":"2743:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79506,"nodeType":"ParameterList","parameters":[],"src":"2822:2:165"},"returnParameters":{"id":79507,"nodeType":"ParameterList","parameters":[],"src":"2825:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79717,"nodeType":"FunctionDefinition","src":"4048:2520:165","nodes":[],"body":{"id":79716,"nodeType":"Block","src":"4463:2105:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79541,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79515,"src":"4488:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79540,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4473:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79543,"nodeType":"ExpressionStatement","src":"4473:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79544,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4505:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79546,"nodeType":"ExpressionStatement","src":"4505:17:165"},{"expression":{"arguments":[{"id":79548,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79492,"src":"4546:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79549,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"4559:14:165","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":79547,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4532:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79551,"nodeType":"ExpressionStatement","src":"4532:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79552,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4584:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4584:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79554,"nodeType":"ExpressionStatement","src":"4584:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79555,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4609:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4609:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79557,"nodeType":"ExpressionStatement","src":"4609:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79559,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4821:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4827:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4821:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4821:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79563,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"4842:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4813:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79566,"nodeType":"ExpressionStatement","src":"4813:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79568,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"4879:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4879:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79571,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74547,"src":"4902:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4902:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4871:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79574,"nodeType":"ExpressionStatement","src":"4871:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79576,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"4946:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79577,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"4961:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4946:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79579,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74550,"src":"4980:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4980:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4938:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79582,"nodeType":"ExpressionStatement","src":"4938:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79584,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"5171:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79585,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"5191:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79586,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"5206:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5191:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5190:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5227:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5190:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5171:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79592,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74555,"src":"5231:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5163:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79595,"nodeType":"ExpressionStatement","src":"5163:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5282:25:165","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":79596,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82293,"src":"5266:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79599,"nodeType":"ExpressionStatement","src":"5266:42:165"},{"assignments":[79602],"declarations":[{"constant":false,"id":79602,"mutability":"mutable","name":"router","nameLocation":"5334:6:165","nodeType":"VariableDeclaration","scope":79716,"src":"5318:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79601,"nodeType":"UserDefinedTypeName","pathNode":{"id":79600,"name":"Storage","nameLocations":["5318:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"5318:7:165"},"referencedDeclaration":74490,"src":"5318:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79605,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79603,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"5343:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5343:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5318:34:165"},{"expression":{"id":79612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79606,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5363:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5370:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"5363:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79609,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5385:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5390:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83551,"src":"5385:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83080_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5385:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5363:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79613,"nodeType":"ExpressionStatement","src":"5363:39:165"},{"expression":{"id":79623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79614,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5412:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5419:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"5412:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79619,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79517,"src":"5452:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79620,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"5461:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79621,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79521,"src":"5475:11:165","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":79617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5435:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5440:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"5435:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$82951_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5412:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79624,"nodeType":"ExpressionStatement","src":"5412:75:165"},{"expression":{"id":79632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79625,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5497:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5504:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5497:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5523:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"5497:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79630,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5544:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5549:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":82872,"src":"5544:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5497:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79633,"nodeType":"ExpressionStatement","src":"5497:82:165"},{"expression":{"id":79641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79634,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5589:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5596:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5589:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"5589:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79639,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5638:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5643:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":82876,"src":"5638:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5589:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79642,"nodeType":"ExpressionStatement","src":"5589:86:165"},{"expression":{"id":79649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79643,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5685:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5692:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"5685:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79646,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5710:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5715:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83528,"src":"5710:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83072_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5685:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79650,"nodeType":"ExpressionStatement","src":"5685:58:165"},{"expression":{"id":79660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79651,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5753:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5760:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"5753:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79656,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"5787:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79657,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"5801:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79658,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"5820:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79654,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5772:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5777:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83175,"src":"5772:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83175_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5753:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79661,"nodeType":"ExpressionStatement","src":"5753:84:165"},{"expression":{"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79662,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5847:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5854:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5847:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5867:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"5847:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79669,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79535,"src":"5890:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5902:6:165","memberName":"length","nodeType":"MemberAccess","src":"5890:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5883:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79667,"name":"uint16","nodeType":"ElementaryTypeName","src":"5883:6:165","typeDescriptions":{}}},"id":79671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5883:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5847:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79673,"nodeType":"ExpressionStatement","src":"5847:62:165"},{"assignments":[79675],"declarations":[{"constant":false,"id":79675,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5928:14:165","nodeType":"VariableDeclaration","scope":79716,"src":"5920:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79674,"name":"uint256","nodeType":"ElementaryTypeName","src":"5920:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79683,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5945:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79678,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"5964:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79677,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"5951:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":79679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":79680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5978:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"5951:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5945:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5920:68:165"},{"expression":{"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79684,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5998:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6005:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5998:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6018:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"5998:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79689,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"6049:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79690,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"6092:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6049:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79693,"nodeType":"ExpressionStatement","src":"5998:108:165"},{"expression":{"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79694,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"6116:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6123:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"6116:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6136:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"6116:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79699,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79501,"src":"6168:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79700,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"6212:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6168:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6116:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79703,"nodeType":"ExpressionStatement","src":"6116:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79705,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"6308:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6315:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"6308:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6334:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"6308:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":79708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6359:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":79709,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79530,"src":"6377:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79710,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79532,"src":"6411:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79711,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79535,"src":"6459:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79712,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6484:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6490:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6484:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79704,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82240,"src":"6278:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82928_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82907_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:231:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79715,"nodeType":"ExpressionStatement","src":"6278:231:165"}]},"documentation":{"id":79513,"nodeType":"StructuredDocumentation","src":"2870:1173:165","text":" @dev Initializes the `Router` with the given parameters.\n @param _owner The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\n @param _mirror The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\n @param _wrappedVara The address of the `WrappedVara` (WVARA) ERC20 token contract.\n @param _middleware The address of the middleware contract.\n @param _eraDuration The duration of an era in seconds.\n @param _electionDuration The duration of an election in seconds.\n @param _validationDelay The delay before validators can start validating in seconds.\n @param _aggregatedPublicKey The optional aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\n @param _validators The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures,\n so the list of validators is used for signature verification."},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":79538,"kind":"modifierInvocation","modifierName":{"id":79537,"name":"initializer","nameLocations":["4451:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4451:11:165"},"nodeType":"ModifierInvocation","src":"4451:11:165"}],"name":"initialize","nameLocation":"4057:10:165","parameters":{"id":79536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79515,"mutability":"mutable","name":"_owner","nameLocation":"4085:6:165","nodeType":"VariableDeclaration","scope":79717,"src":"4077:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79514,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79517,"mutability":"mutable","name":"_mirror","nameLocation":"4109:7:165","nodeType":"VariableDeclaration","scope":79717,"src":"4101:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79516,"name":"address","nodeType":"ElementaryTypeName","src":"4101:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79519,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4134:12:165","nodeType":"VariableDeclaration","scope":79717,"src":"4126:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79518,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79521,"mutability":"mutable","name":"_middleware","nameLocation":"4164:11:165","nodeType":"VariableDeclaration","scope":79717,"src":"4156:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79520,"name":"address","nodeType":"ElementaryTypeName","src":"4156:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79523,"mutability":"mutable","name":"_eraDuration","nameLocation":"4193:12:165","nodeType":"VariableDeclaration","scope":79717,"src":"4185:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4185:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79525,"mutability":"mutable","name":"_electionDuration","nameLocation":"4223:17:165","nodeType":"VariableDeclaration","scope":79717,"src":"4215:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79524,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79527,"mutability":"mutable","name":"_validationDelay","nameLocation":"4258:16:165","nodeType":"VariableDeclaration","scope":79717,"src":"4250:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79526,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79530,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4318:20:165","nodeType":"VariableDeclaration","scope":79717,"src":"4284:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79529,"nodeType":"UserDefinedTypeName","pathNode":{"id":79528,"name":"Gear.AggregatedPublicKey","nameLocations":["4284:4:165","4289:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"4284:24:165"},"referencedDeclaration":82907,"src":"4284:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79532,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4363:34:165","nodeType":"VariableDeclaration","scope":79717,"src":"4348:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79531,"name":"bytes","nodeType":"ElementaryTypeName","src":"4348:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79535,"mutability":"mutable","name":"_validators","nameLocation":"4426:11:165","nodeType":"VariableDeclaration","scope":79717,"src":"4407:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79533,"name":"address","nodeType":"ElementaryTypeName","src":"4407:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79534,"nodeType":"ArrayTypeName","src":"4407:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4067:376:165"},"returnParameters":{"id":79539,"nodeType":"ParameterList","parameters":[],"src":"4463:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79812,"nodeType":"FunctionDefinition","src":"6888:3024:165","nodes":[],"body":{"id":79811,"nodeType":"Block","src":"6946:2966:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79727,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9219:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9219:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79726,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9204:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79730,"nodeType":"ExpressionStatement","src":"9204:23:165"},{"expression":{"arguments":[{"id":79732,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79492,"src":"9251:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79733,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"9264:14:165","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":79731,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9237:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79735,"nodeType":"ExpressionStatement","src":"9237:42:165"},{"assignments":[79738],"declarations":[{"constant":false,"id":79738,"mutability":"mutable","name":"router","nameLocation":"9306:6:165","nodeType":"VariableDeclaration","scope":79811,"src":"9290:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79737,"nodeType":"UserDefinedTypeName","pathNode":{"id":79736,"name":"Storage","nameLocations":["9290:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"9290:7:165"},"referencedDeclaration":74490,"src":"9290:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79739,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"9315:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9315:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9290:34:165"},{"expression":{"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79742,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9334:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9341:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"9334:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79745,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9356:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9361:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83551,"src":"9356:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83080_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9334:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79749,"nodeType":"ExpressionStatement","src":"9334:39:165"},{"expression":{"id":79761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79750,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9383:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9390:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"9383:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9452:1:165","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":79756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9444:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9444:7:165","typeDescriptions":{}}},"id":79758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9444:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9467:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":79753,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9413:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9418:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"9413:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83066_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9438:4:165","9456:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9413:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9383:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79762,"nodeType":"ExpressionStatement","src":"9383:87:165"},{"expression":{"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79763,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9480:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9487:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9480:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9500:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"9480:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79772,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9549:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79770,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9523:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9528:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"9523:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9523:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9557:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"9523:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:6:165","memberName":"length","nodeType":"MemberAccess","src":"9523:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79768,"name":"uint16","nodeType":"ElementaryTypeName","src":"9516:6:165","typeDescriptions":{}}},"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9480:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79778,"nodeType":"ExpressionStatement","src":"9480:89:165"},{"assignments":[79780],"declarations":[{"constant":false,"id":79780,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9587:14:165","nodeType":"VariableDeclaration","scope":79811,"src":"9579:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79779,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79790,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9604:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":79783,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9630:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"9623:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9644:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"9623:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79782,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"9610:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":79787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9657:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9610:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9604:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9579:88:165"},{"expression":{"id":79799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79791,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9677:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9684:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9677:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9697:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"9677:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79796,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"9728:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79797,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79780,"src":"9771:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9728:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9677:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79800,"nodeType":"ExpressionStatement","src":"9677:108:165"},{"expression":{"id":79809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9795:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9802:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9795:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9815:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"9795:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79806,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79501,"src":"9847:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79807,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79780,"src":"9891:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9847:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9795:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79810,"nodeType":"ExpressionStatement","src":"9795:110:165"}]},"documentation":{"id":79718,"nodeType":"StructuredDocumentation","src":"6574:309:165","text":" @dev Reinitializes the `Router` to set up new storage layout.\n This function is intended to be called during an upgrade/wipe and can contain any logic.\n NOTE: Don't forget to bump `reinitializer(version)` in modifier!\n @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79721,"kind":"modifierInvocation","modifierName":{"id":79720,"name":"onlyOwner","nameLocations":["6919:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6919:9:165"},"nodeType":"ModifierInvocation","src":"6919:9:165"},{"arguments":[{"hexValue":"35","id":79723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6943:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79724,"kind":"modifierInvocation","modifierName":{"id":79722,"name":"reinitializer","nameLocations":["6929:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"6929:13:165"},"nodeType":"ModifierInvocation","src":"6929:16:165"}],"name":"reinitialize","nameLocation":"6897:12:165","parameters":{"id":79719,"nodeType":"ParameterList","parameters":[],"src":"6909:2:165"},"returnParameters":{"id":79725,"nodeType":"ParameterList","parameters":[],"src":"6946:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79822,"nodeType":"FunctionDefinition","src":"10077:84:165","nodes":[],"body":{"id":79821,"nodeType":"Block","src":"10159:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79813,"nodeType":"StructuredDocumentation","src":"9918:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":79819,"kind":"modifierInvocation","modifierName":{"id":79818,"name":"onlyOwner","nameLocations":["10149:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10149:9:165"},"nodeType":"ModifierInvocation","src":"10149:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10086:17:165","overrides":{"id":79817,"nodeType":"OverrideSpecifier","overrides":[],"src":"10140:8:165"},"parameters":{"id":79816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79815,"mutability":"mutable","name":"newImplementation","nameLocation":"10112:17:165","nodeType":"VariableDeclaration","scope":79822,"src":"10104:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79814,"name":"address","nodeType":"ElementaryTypeName","src":"10104:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10103:27:165"},"returnParameters":{"id":79820,"nodeType":"ParameterList","parameters":[],"src":"10159:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79876,"nodeType":"FunctionDefinition","src":"10333:948:165","nodes":[],"body":{"id":79875,"nodeType":"Block","src":"10397:884:165","nodes":[],"statements":[{"assignments":[79831],"declarations":[{"constant":false,"id":79831,"mutability":"mutable","name":"router","nameLocation":"10423:6:165","nodeType":"VariableDeclaration","scope":79875,"src":"10407:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79830,"nodeType":"UserDefinedTypeName","pathNode":{"id":79829,"name":"Storage","nameLocations":["10407:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"10407:7:165"},"referencedDeclaration":74490,"src":"10407:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79834,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79832,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"10432:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10432:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10407:34:165"},{"assignments":[79839],"declarations":[{"constant":false,"id":79839,"mutability":"mutable","name":"validationSettings","nameLocation":"10486:18:165","nodeType":"VariableDeclaration","scope":79875,"src":"10451:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79838,"nodeType":"UserDefinedTypeName","pathNode":{"id":79837,"name":"Gear.ValidationSettingsView","nameLocations":["10451:4:165","10456:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"10451:27:165"},"referencedDeclaration":83199,"src":"10451:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79845,"initialValue":{"arguments":[{"expression":{"id":79842,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10519:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10526:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"10519:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79840,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"10507:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10512:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84098,"src":"10507:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83187_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83199_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10507:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10451:94:165"},{"expression":{"arguments":[{"expression":{"id":79847,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10602:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10609:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"10602:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":79849,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10657:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10664:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"10657:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":79851,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10713:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10720:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"10713:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":79853,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79839,"src":"10767:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":79854,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10823:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"10816:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":79856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10863:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10870:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"10863:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":79858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10908:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10915:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10908:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10928:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"10908:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10976:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10983:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10976:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10996:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"10976:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79864,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11044:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11051:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11044:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11064:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"11044:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":79867,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11121:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11128:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11121:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11141:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"11121:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79870,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11214:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11221:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11214:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11234:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"11214:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79846,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74457,"src":"10562:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74457_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":79873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10588:12:165","10635:20:165","10698:13:165","10747:18:165","10799:15:165","10852:9:165","10893:13:165","10955:19:165","11029:13:165","11091:28:165","11183:29:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10562:712:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79828,"id":79874,"nodeType":"Return","src":"10555:719:165"}]},"baseFunctions":[74648],"documentation":{"id":79823,"nodeType":"StructuredDocumentation","src":"10186:142:165","text":" @dev Returns the storage view of the contract storage.\n @return storageView The storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"10342:11:165","parameters":{"id":79824,"nodeType":"ParameterList","parameters":[],"src":"10353:2:165"},"returnParameters":{"id":79828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79876,"src":"10377:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79826,"nodeType":"UserDefinedTypeName","pathNode":{"id":79825,"name":"StorageView","nameLocations":["10377:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74457,"src":"10377:11:165"},"referencedDeclaration":74457,"src":"10377:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10376:20:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79888,"nodeType":"FunctionDefinition","src":"11417:109:165","nodes":[],"body":{"id":79887,"nodeType":"Block","src":"11475:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79882,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"11492:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11502:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11492:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11515:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"11492:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79881,"id":79886,"nodeType":"Return","src":"11485:34:165"}]},"baseFunctions":[74654],"documentation":{"id":79877,"nodeType":"StructuredDocumentation","src":"11287:125:165","text":" @dev Returns the hash of the genesis block.\n @return genesisBlockHash The hash of the genesis block."},"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"11426:16:165","parameters":{"id":79878,"nodeType":"ParameterList","parameters":[],"src":"11442:2:165"},"returnParameters":{"id":79881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79888,"src":"11466:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11466:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11465:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79900,"nodeType":"FunctionDefinition","src":"11672:113:165","nodes":[],"body":{"id":79899,"nodeType":"Block","src":"11729:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79894,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"11746:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11746:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11756:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11746:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11769:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"11746:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79893,"id":79898,"nodeType":"Return","src":"11739:39:165"}]},"baseFunctions":[74660],"documentation":{"id":79889,"nodeType":"StructuredDocumentation","src":"11532:135:165","text":" @dev Returns the timestamp of the genesis block.\n @return genesisTimestamp The timestamp of the genesis block."},"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"11681:16:165","parameters":{"id":79890,"nodeType":"ParameterList","parameters":[],"src":"11697:2:165"},"returnParameters":{"id":79893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79900,"src":"11721:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79891,"name":"uint48","nodeType":"ElementaryTypeName","src":"11721:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11720:8:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79912,"nodeType":"FunctionDefinition","src":"11947:125:165","nodes":[],"body":{"id":79911,"nodeType":"Block","src":"12013:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79906,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12030:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12030:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12040:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12030:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12061:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"12030:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79905,"id":79910,"nodeType":"Return","src":"12023:42:165"}]},"baseFunctions":[74666],"documentation":{"id":79901,"nodeType":"StructuredDocumentation","src":"11791:151:165","text":" @dev Returns the hash of the latest committed batch.\n @return latestCommittedBatchHash The hash of the latest committed batch."},"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"11956:24:165","parameters":{"id":79902,"nodeType":"ParameterList","parameters":[],"src":"11980:2:165"},"returnParameters":{"id":79905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79912,"src":"12004:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12003:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79924,"nodeType":"FunctionDefinition","src":"12249:134:165","nodes":[],"body":{"id":79923,"nodeType":"Block","src":"12319:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79918,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12336:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12346:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12336:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12367:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"12336:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79917,"id":79922,"nodeType":"Return","src":"12329:47:165"}]},"baseFunctions":[74672],"documentation":{"id":79913,"nodeType":"StructuredDocumentation","src":"12078:166:165","text":" @dev Returns the timestamp of the latest committed batch.\n @return latestCommittedBatchTimestamp The timestamp of the latest committed batch."},"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"12258:29:165","parameters":{"id":79914,"nodeType":"ParameterList","parameters":[],"src":"12287:2:165"},"returnParameters":{"id":79917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79924,"src":"12311:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79915,"name":"uint48","nodeType":"ElementaryTypeName","src":"12311:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12310:8:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79936,"nodeType":"FunctionDefinition","src":"12535:106:165","nodes":[],"body":{"id":79935,"nodeType":"Block","src":"12587:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79930,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12604:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12604:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12614:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12604:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12628:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"12604:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79929,"id":79934,"nodeType":"Return","src":"12597:37:165"}]},"baseFunctions":[74678],"documentation":{"id":79925,"nodeType":"StructuredDocumentation","src":"12389:141:165","text":" @dev Returns the address of the mirror implementation.\n @return mirrorImpl The address of the mirror implementation."},"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"12544:10:165","parameters":{"id":79926,"nodeType":"ParameterList","parameters":[],"src":"12554:2:165"},"returnParameters":{"id":79929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79936,"src":"12578:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79927,"name":"address","nodeType":"ElementaryTypeName","src":"12578:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12577:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79948,"nodeType":"FunctionDefinition","src":"12806:112:165","nodes":[],"body":{"id":79947,"nodeType":"Block","src":"12859:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79942,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12876:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12876:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12886:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12876:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12900:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"12876:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79941,"id":79946,"nodeType":"Return","src":"12869:42:165"}]},"baseFunctions":[74684],"documentation":{"id":79937,"nodeType":"StructuredDocumentation","src":"12647:154:165","text":" @dev Returns the address of the wrapped Vara implementation.\n @return wrappedVara The address of the wrapped Vara implementation."},"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"12815:11:165","parameters":{"id":79938,"nodeType":"ParameterList","parameters":[],"src":"12826:2:165"},"returnParameters":{"id":79941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79948,"src":"12850:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79939,"name":"address","nodeType":"ElementaryTypeName","src":"12850:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12849:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79960,"nodeType":"FunctionDefinition","src":"13078:110:165","nodes":[],"body":{"id":79959,"nodeType":"Block","src":"13130:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79954,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"13147:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13147:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13157:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"13147:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13171:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82950,"src":"13147:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79953,"id":79958,"nodeType":"Return","src":"13140:41:165"}]},"baseFunctions":[74690],"documentation":{"id":79949,"nodeType":"StructuredDocumentation","src":"12924:149:165","text":" @dev Returns the address of the middleware implementation.\n @return middleware The address of the middleware implementation."},"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"13087:10:165","parameters":{"id":79950,"nodeType":"ParameterList","parameters":[],"src":"13097:2:165"},"returnParameters":{"id":79953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79960,"src":"13121:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79951,"name":"address","nodeType":"ElementaryTypeName","src":"13121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13120:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79975,"nodeType":"FunctionDefinition","src":"13381:175:165","nodes":[],"body":{"id":79974,"nodeType":"Block","src":"13476:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79969,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"13519:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13519:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79967,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"13493:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13498:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"13493:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13493:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13530:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"13493:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":79966,"id":79973,"nodeType":"Return","src":"13486:63:165"}]},"baseFunctions":[74697],"documentation":{"id":79961,"nodeType":"StructuredDocumentation","src":"13194:182:165","text":" @dev Returns the aggregated public key of the current validators.\n @return validatorsAggregatedPublicKey The aggregated public key of the current validators."},"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"13390:29:165","parameters":{"id":79962,"nodeType":"ParameterList","parameters":[],"src":"13419:2:165"},"returnParameters":{"id":79966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79975,"src":"13443:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79964,"nodeType":"UserDefinedTypeName","pathNode":{"id":79963,"name":"Gear.AggregatedPublicKey","nameLocations":["13443:4:165","13448:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"13443:24:165"},"referencedDeclaration":82907,"src":"13443:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13442:33:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79992,"nodeType":"FunctionDefinition","src":"14022:207:165","nodes":[],"body":{"id":79991,"nodeType":"Block","src":"14114:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79985,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"14170:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14170:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79983,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"14144:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14149:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"14144:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14144:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14181:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"14144:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79981,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"14131:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84555_$","typeString":"type(library SSTORE2)"}},"id":79982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14139:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84528,"src":"14131:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":79989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14131:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":79980,"id":79990,"nodeType":"Return","src":"14124:98:165"}]},"baseFunctions":[74703],"documentation":{"id":79976,"nodeType":"StructuredDocumentation","src":"13562:455:165","text":" @dev Returns the verifiable secret sharing commitment of the current validators.\n This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct.\n See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\n @return validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."},"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"14031:43:165","parameters":{"id":79977,"nodeType":"ParameterList","parameters":[],"src":"14074:2:165"},"returnParameters":{"id":79980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79992,"src":"14100:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":79978,"name":"bytes","nodeType":"ElementaryTypeName","src":"14100:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14099:14:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80039,"nodeType":"FunctionDefinition","src":"14401:375:165","nodes":[],"body":{"id":80038,"nodeType":"Block","src":"14483:293:165","nodes":[],"statements":[{"assignments":[80005],"declarations":[{"constant":false,"id":80005,"mutability":"mutable","name":"_currentValidators","nameLocation":"14517:18:165","nodeType":"VariableDeclaration","scope":80038,"src":"14493:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80004,"nodeType":"UserDefinedTypeName","pathNode":{"id":80003,"name":"Gear.Validators","nameLocations":["14493:4:165","14498:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"14493:15:165"},"referencedDeclaration":82928,"src":"14493:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80011,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80008,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"14564:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14564:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80006,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"14538:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14543:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"14538:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14538:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14493:81:165"},{"body":{"id":80034,"nodeType":"Block","src":"14634:114:165","statements":[{"condition":{"id":80029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14652:39:165","subExpression":{"baseExpression":{"expression":{"id":80023,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80005,"src":"14653:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14672:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"14653:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80028,"indexExpression":{"baseExpression":{"id":80025,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"14676:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80027,"indexExpression":{"id":80026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14688:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14676:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14653:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80033,"nodeType":"IfStatement","src":"14648:90:165","trueBody":{"id":80032,"nodeType":"Block","src":"14693:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14718:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80000,"id":80031,"nodeType":"Return","src":"14711:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80016,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14605:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80017,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"14609:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14621:6:165","memberName":"length","nodeType":"MemberAccess","src":"14609:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14605:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80035,"initializationExpression":{"assignments":[80013],"declarations":[{"constant":false,"id":80013,"mutability":"mutable","name":"i","nameLocation":"14598:1:165","nodeType":"VariableDeclaration","scope":80035,"src":"14590:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80012,"name":"uint256","nodeType":"ElementaryTypeName","src":"14590:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80015,"initialValue":{"hexValue":"30","id":80014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14602:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14590:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14629:3:165","subExpression":{"id":80020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14629:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80022,"nodeType":"ExpressionStatement","src":"14629:3:165"},"nodeType":"ForStatement","src":"14585:163:165"},{"expression":{"hexValue":"74727565","id":80036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14765:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80000,"id":80037,"nodeType":"Return","src":"14758:11:165"}]},"baseFunctions":[74712],"documentation":{"id":79993,"nodeType":"StructuredDocumentation","src":"14235:161:165","text":" @dev Checks if the given addresses are all validators.\n @return areValidators `true` if all addresses are validators, `false` otherwise."},"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"14410:13:165","parameters":{"id":79997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79996,"mutability":"mutable","name":"_validators","nameLocation":"14443:11:165","nodeType":"VariableDeclaration","scope":80039,"src":"14424:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79994,"name":"address","nodeType":"ElementaryTypeName","src":"14424:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79995,"nodeType":"ArrayTypeName","src":"14424:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14423:32:165"},"returnParameters":{"id":80000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80039,"src":"14477:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79998,"name":"bool","nodeType":"ElementaryTypeName","src":"14477:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14476:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80057,"nodeType":"FunctionDefinition","src":"14938:144:165","nodes":[],"body":{"id":80056,"nodeType":"Block","src":"15006:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80049,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15049:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15049:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80047,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"15023:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15028:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"15023:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15023:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15060:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"15023:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80054,"indexExpression":{"id":80053,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80042,"src":"15064:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15023:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80046,"id":80055,"nodeType":"Return","src":"15016:59:165"}]},"baseFunctions":[74720],"documentation":{"id":80040,"nodeType":"StructuredDocumentation","src":"14782:151:165","text":" @dev Checks if the given address is a validator.\n @return isValidator `true` if the address is a validator, `false` otherwise."},"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"14947:11:165","parameters":{"id":80043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80042,"mutability":"mutable","name":"_validator","nameLocation":"14967:10:165","nodeType":"VariableDeclaration","scope":80057,"src":"14959:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80041,"name":"address","nodeType":"ElementaryTypeName","src":"14959:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14958:20:165"},"returnParameters":{"id":80046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80057,"src":"15000:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80044,"name":"bool","nodeType":"ElementaryTypeName","src":"15000:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14999:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80082,"nodeType":"FunctionDefinition","src":"15326:285:165","nodes":[],"body":{"id":80081,"nodeType":"Block","src":"15441:170:165","nodes":[],"statements":[{"assignments":[80069],"declarations":[{"constant":false,"id":80069,"mutability":"mutable","name":"router","nameLocation":"15475:6:165","nodeType":"VariableDeclaration","scope":80081,"src":"15451:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80068,"nodeType":"UserDefinedTypeName","pathNode":{"id":80067,"name":"IRouter.Storage","nameLocations":["15451:7:165","15459:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"15451:15:165"},"referencedDeclaration":74490,"src":"15451:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80072,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80070,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15484:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15484:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15451:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80069,"src":"15511:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15518:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15511:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15537:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"15511:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80076,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80069,"src":"15557:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15564:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15557:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15583:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"15557:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15510:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80064,"id":80080,"nodeType":"Return","src":"15503:101:165"}]},"baseFunctions":[74728],"documentation":{"id":80058,"nodeType":"StructuredDocumentation","src":"15088:233:165","text":" @dev Returns the signing threshold fraction.\n @return thresholdNumerator The numerator of the signing threshold fraction.\n @return thresholdDenominator The denominator of the signing threshold fraction."},"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"15335:24:165","parameters":{"id":80059,"nodeType":"ParameterList","parameters":[],"src":"15359:2:165"},"returnParameters":{"id":80064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80061,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15391:18:165","nodeType":"VariableDeclaration","scope":80082,"src":"15383:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80060,"name":"uint128","nodeType":"ElementaryTypeName","src":"15383:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80063,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15419:20:165","nodeType":"VariableDeclaration","scope":80082,"src":"15411:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80062,"name":"uint128","nodeType":"ElementaryTypeName","src":"15411:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15382:58:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80097,"nodeType":"FunctionDefinition","src":"15743:126:165","nodes":[],"body":{"id":80096,"nodeType":"Block","src":"15804:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80091,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15847:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15847:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80089,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"15821:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15826:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"15821:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15821:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15858:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"15821:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80088,"id":80095,"nodeType":"Return","src":"15814:48:165"}]},"baseFunctions":[74735],"documentation":{"id":80083,"nodeType":"StructuredDocumentation","src":"15617:121:165","text":" @dev Returns the list of current validators.\n @return validators The list of current validators."},"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"15752:10:165","parameters":{"id":80084,"nodeType":"ParameterList","parameters":[],"src":"15762:2:165"},"returnParameters":{"id":80088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80097,"src":"15786:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80085,"name":"address","nodeType":"ElementaryTypeName","src":"15786:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80086,"nodeType":"ArrayTypeName","src":"15786:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15785:18:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80112,"nodeType":"FunctionDefinition","src":"16008:129:165","nodes":[],"body":{"id":80111,"nodeType":"Block","src":"16065:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80105,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"16108:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16108:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80103,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16082:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"16082:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16082:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16119:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"16082:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:6:165","memberName":"length","nodeType":"MemberAccess","src":"16082:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80102,"id":80110,"nodeType":"Return","src":"16075:55:165"}]},"baseFunctions":[74741],"documentation":{"id":80098,"nodeType":"StructuredDocumentation","src":"15875:128:165","text":" @dev Returns the count of current validators.\n @return validatorsCount The count of current validators."},"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"16017:15:165","parameters":{"id":80099,"nodeType":"ParameterList","parameters":[],"src":"16032:2:165"},"returnParameters":{"id":80102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80112,"src":"16056:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80100,"name":"uint256","nodeType":"ElementaryTypeName","src":"16056:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16055:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80143,"nodeType":"FunctionDefinition","src":"16338:348:165","nodes":[],"body":{"id":80142,"nodeType":"Block","src":"16399:287:165","nodes":[],"statements":[{"assignments":[80122],"declarations":[{"constant":false,"id":80122,"mutability":"mutable","name":"router","nameLocation":"16433:6:165","nodeType":"VariableDeclaration","scope":80142,"src":"16409:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80121,"nodeType":"UserDefinedTypeName","pathNode":{"id":80120,"name":"IRouter.Storage","nameLocations":["16409:7:165","16417:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"16409:15:165"},"referencedDeclaration":74490,"src":"16409:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80125,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80123,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"16442:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16442:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16409:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80130,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80128,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16506:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16511:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"16506:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16506:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16540:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"16506:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16545:6:165","memberName":"length","nodeType":"MemberAccess","src":"16506:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80134,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16572:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16565:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16591:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"16565:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80137,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16630:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16623:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16649:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"16623:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":80126,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16473:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"16468:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":80140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80117,"id":80141,"nodeType":"Return","src":"16461:218:165"}]},"baseFunctions":[74747],"documentation":{"id":80113,"nodeType":"StructuredDocumentation","src":"16143:190:165","text":" @dev Returns the threshold number of validators required for a valid signature.\n @return threshold The threshold number of validators required for a valid signature."},"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"16347:19:165","parameters":{"id":80114,"nodeType":"ParameterList","parameters":[],"src":"16366:2:165"},"returnParameters":{"id":80117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80143,"src":"16390:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16390:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16389:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80157,"nodeType":"FunctionDefinition","src":"16858:122:165","nodes":[],"body":{"id":80156,"nodeType":"Block","src":"16942:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80152,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16959:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82353_$","typeString":"type(contract super Router)"}},"id":80153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16965:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"16959:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80151,"id":80155,"nodeType":"Return","src":"16952:21:165"}]},"baseFunctions":[43784,74753],"documentation":{"id":80144,"nodeType":"StructuredDocumentation","src":"16692:161:165","text":" @dev Returns true if the contract is paused, and false otherwise.\n @return isPaused `true` if the contract is paused, `false` otherwise."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"16867:6:165","overrides":{"id":80148,"nodeType":"OverrideSpecifier","overrides":[{"id":80146,"name":"IRouter","nameLocations":["16897:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"16897:7:165"},{"id":80147,"name":"PausableUpgradeable","nameLocations":["16906:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"16906:19:165"}],"src":"16888:38:165"},"parameters":{"id":80145,"nodeType":"ParameterList","parameters":[],"src":"16873:2:165"},"returnParameters":{"id":80151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80157,"src":"16936:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80149,"name":"bool","nodeType":"ElementaryTypeName","src":"16936:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16935:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80169,"nodeType":"FunctionDefinition","src":"17105:130:165","nodes":[],"body":{"id":80168,"nodeType":"Block","src":"17186:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80164,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17203:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17203:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17213:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"17203:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80163,"id":80167,"nodeType":"Return","src":"17196:32:165"}]},"baseFunctions":[74760],"documentation":{"id":80158,"nodeType":"StructuredDocumentation","src":"16986:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17114:15:165","parameters":{"id":80159,"nodeType":"ParameterList","parameters":[],"src":"17129:2:165"},"returnParameters":{"id":80163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80169,"src":"17153:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80161,"nodeType":"UserDefinedTypeName","pathNode":{"id":80160,"name":"Gear.ComputationSettings","nameLocations":["17153:4:165","17158:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83072,"src":"17153:24:165"},"referencedDeclaration":83072,"src":"17153:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17152:33:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80186,"nodeType":"FunctionDefinition","src":"17344:134:165","nodes":[],"body":{"id":80185,"nodeType":"Block","src":"17417:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80178,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17434:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17434:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17444:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17434:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17457:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"17434:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80183,"indexExpression":{"id":80182,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80172,"src":"17463:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17434:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80177,"id":80184,"nodeType":"Return","src":"17427:44:165"}]},"baseFunctions":[74769],"documentation":{"id":80170,"nodeType":"StructuredDocumentation","src":"17241:98:165","text":" @dev Returns the state of code.\n @return codeState The state of the code."},"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"17353:9:165","parameters":{"id":80173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80172,"mutability":"mutable","name":"_codeId","nameLocation":"17371:7:165","nodeType":"VariableDeclaration","scope":80186,"src":"17363:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17363:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17362:17:165"},"returnParameters":{"id":80177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80186,"src":"17401:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"typeName":{"id":80175,"nodeType":"UserDefinedTypeName","pathNode":{"id":80174,"name":"Gear.CodeState","nameLocations":["17401:4:165","17406:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17401:14:165"},"referencedDeclaration":83060,"src":"17401:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17400:16:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80245,"nodeType":"FunctionDefinition","src":"17602:378:165","nodes":[],"body":{"id":80244,"nodeType":"Block","src":"17699:281:165","nodes":[],"statements":[{"assignments":[80199],"declarations":[{"constant":false,"id":80199,"mutability":"mutable","name":"router","nameLocation":"17725:6:165","nodeType":"VariableDeclaration","scope":80244,"src":"17709:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80198,"nodeType":"UserDefinedTypeName","pathNode":{"id":80197,"name":"Storage","nameLocations":["17709:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"17709:7:165"},"referencedDeclaration":74490,"src":"17709:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80202,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80200,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17734:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17734:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17709:34:165"},{"assignments":[80208],"declarations":[{"constant":false,"id":80208,"mutability":"mutable","name":"res","nameLocation":"17778:3:165","nodeType":"VariableDeclaration","scope":80244,"src":"17754:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80206,"nodeType":"UserDefinedTypeName","pathNode":{"id":80205,"name":"Gear.CodeState","nameLocations":["17754:4:165","17759:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17754:14:165"},"referencedDeclaration":83060,"src":"17754:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80207,"nodeType":"ArrayTypeName","src":"17754:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80216,"initialValue":{"arguments":[{"expression":{"id":80213,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17805:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17815:6:165","memberName":"length","nodeType":"MemberAccess","src":"17805:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17784:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80210,"nodeType":"UserDefinedTypeName","pathNode":{"id":80209,"name":"Gear.CodeState","nameLocations":["17788:4:165","17793:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17788:14:165"},"referencedDeclaration":83060,"src":"17788:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80211,"nodeType":"ArrayTypeName","src":"17788:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17754:68:165"},{"body":{"id":80240,"nodeType":"Block","src":"17880:73:165","statements":[{"expression":{"id":80238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80228,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80208,"src":"17894:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80230,"indexExpression":{"id":80229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17898:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17894:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80231,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80199,"src":"17903:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17903:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17923:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"17903:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80237,"indexExpression":{"baseExpression":{"id":80234,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17929:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80236,"indexExpression":{"id":80235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17939:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17929:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17903:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"17894:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80239,"nodeType":"ExpressionStatement","src":"17894:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80221,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17853:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80222,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17857:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17867:6:165","memberName":"length","nodeType":"MemberAccess","src":"17857:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17853:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80241,"initializationExpression":{"assignments":[80218],"declarations":[{"constant":false,"id":80218,"mutability":"mutable","name":"i","nameLocation":"17846:1:165","nodeType":"VariableDeclaration","scope":80241,"src":"17838:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80217,"name":"uint256","nodeType":"ElementaryTypeName","src":"17838:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80220,"initialValue":{"hexValue":"30","id":80219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17850:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17838:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17875:3:165","subExpression":{"id":80225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17875:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80227,"nodeType":"ExpressionStatement","src":"17875:3:165"},"nodeType":"ForStatement","src":"17833:120:165"},{"expression":{"id":80242,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80208,"src":"17970:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80196,"id":80243,"nodeType":"Return","src":"17963:10:165"}]},"baseFunctions":[74780],"documentation":{"id":80187,"nodeType":"StructuredDocumentation","src":"17484:113:165","text":" @dev Returns the states of multiple codes.\n @return codesStates The states of the codes."},"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"17611:11:165","parameters":{"id":80191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80190,"mutability":"mutable","name":"_codesIds","nameLocation":"17642:9:165","nodeType":"VariableDeclaration","scope":80245,"src":"17623:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17623:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80189,"nodeType":"ArrayTypeName","src":"17623:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17622:30:165"},"returnParameters":{"id":80196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80245,"src":"17674:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80193,"nodeType":"UserDefinedTypeName","pathNode":{"id":80192,"name":"Gear.CodeState","nameLocations":["17674:4:165","17679:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17674:14:165"},"referencedDeclaration":83060,"src":"17674:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80194,"nodeType":"ArrayTypeName","src":"17674:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17673:25:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80261,"nodeType":"FunctionDefinition","src":"18106:140:165","nodes":[],"body":{"id":80260,"nodeType":"Block","src":"18179:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80253,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18196:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18196:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18196:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18196:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80258,"indexExpression":{"id":80257,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80248,"src":"18228:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18196:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80252,"id":80259,"nodeType":"Return","src":"18189:50:165"}]},"baseFunctions":[74788],"documentation":{"id":80246,"nodeType":"StructuredDocumentation","src":"17986:115:165","text":" @dev Returns the code ID of the given program.\n @return codeId The code ID of the program."},"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"18115:13:165","parameters":{"id":80249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80248,"mutability":"mutable","name":"_programId","nameLocation":"18137:10:165","nodeType":"VariableDeclaration","scope":80261,"src":"18129:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80247,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18128:20:165"},"returnParameters":{"id":80252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80261,"src":"18170:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18170:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18169:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80317,"nodeType":"FunctionDefinition","src":"18378:376:165","nodes":[],"body":{"id":80316,"nodeType":"Block","src":"18475:279:165","nodes":[],"statements":[{"assignments":[80273],"declarations":[{"constant":false,"id":80273,"mutability":"mutable","name":"router","nameLocation":"18501:6:165","nodeType":"VariableDeclaration","scope":80316,"src":"18485:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80272,"nodeType":"UserDefinedTypeName","pathNode":{"id":80271,"name":"Storage","nameLocations":["18485:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"18485:7:165"},"referencedDeclaration":74490,"src":"18485:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80276,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80274,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18510:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18510:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18485:34:165"},{"assignments":[80281],"declarations":[{"constant":false,"id":80281,"mutability":"mutable","name":"res","nameLocation":"18547:3:165","nodeType":"VariableDeclaration","scope":80316,"src":"18530:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80280,"nodeType":"ArrayTypeName","src":"18530:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80288,"initialValue":{"arguments":[{"expression":{"id":80285,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18567:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18580:6:165","memberName":"length","nodeType":"MemberAccess","src":"18567:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18553:13:165","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":80282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80283,"nodeType":"ArrayTypeName","src":"18557:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18530:57:165"},{"body":{"id":80312,"nodeType":"Block","src":"18648:79:165","statements":[{"expression":{"id":80310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80300,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"18662:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80302,"indexExpression":{"id":80301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18666:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18662:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80303,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80273,"src":"18671:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18678:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18671:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18691:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18671:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80309,"indexExpression":{"baseExpression":{"id":80306,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18700:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80308,"indexExpression":{"id":80307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18713:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18700:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18671:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18662:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80311,"nodeType":"ExpressionStatement","src":"18662:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18618:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80294,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18622:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18635:6:165","memberName":"length","nodeType":"MemberAccess","src":"18622:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18618:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80313,"initializationExpression":{"assignments":[80290],"declarations":[{"constant":false,"id":80290,"mutability":"mutable","name":"i","nameLocation":"18611:1:165","nodeType":"VariableDeclaration","scope":80313,"src":"18603:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80289,"name":"uint256","nodeType":"ElementaryTypeName","src":"18603:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80292,"initialValue":{"hexValue":"30","id":80291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18603:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18643:3:165","subExpression":{"id":80297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18643:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80299,"nodeType":"ExpressionStatement","src":"18643:3:165"},"nodeType":"ForStatement","src":"18598:129:165"},{"expression":{"id":80314,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"18744:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80270,"id":80315,"nodeType":"Return","src":"18737:10:165"}]},"baseFunctions":[74798],"documentation":{"id":80262,"nodeType":"StructuredDocumentation","src":"18252:121:165","text":" @dev Returns the code IDs of the given programs.\n @return codesIds The code IDs of the programs."},"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"18387:15:165","parameters":{"id":80266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80265,"mutability":"mutable","name":"_programsIds","nameLocation":"18422:12:165","nodeType":"VariableDeclaration","scope":80317,"src":"18403:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80263,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80264,"nodeType":"ArrayTypeName","src":"18403:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18402:33:165"},"returnParameters":{"id":80270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80317,"src":"18457:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18457:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80268,"nodeType":"ArrayTypeName","src":"18457:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18456:18:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80329,"nodeType":"FunctionDefinition","src":"18871:115:165","nodes":[],"body":{"id":80328,"nodeType":"Block","src":"18926:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80323,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18943:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18943:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18953:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18943:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18966:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"18943:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80322,"id":80327,"nodeType":"Return","src":"18936:43:165"}]},"baseFunctions":[74804],"documentation":{"id":80318,"nodeType":"StructuredDocumentation","src":"18760:106:165","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"18880:13:165","parameters":{"id":80319,"nodeType":"ParameterList","parameters":[],"src":"18893:2:165"},"returnParameters":{"id":80322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80329,"src":"18917:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80320,"name":"uint256","nodeType":"ElementaryTypeName","src":"18917:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18916:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80341,"nodeType":"FunctionDefinition","src":"19123:127:165","nodes":[],"body":{"id":80340,"nodeType":"Block","src":"19184:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80335,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19201:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19211:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19201:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19224:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"19201:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80334,"id":80339,"nodeType":"Return","src":"19194:49:165"}]},"baseFunctions":[74810],"documentation":{"id":80330,"nodeType":"StructuredDocumentation","src":"18992:126:165","text":" @dev Returns the count of validated codes.\n @return validatedCodesCount The count of validated codes."},"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"19132:19:165","parameters":{"id":80331,"nodeType":"ParameterList","parameters":[],"src":"19151:2:165"},"returnParameters":{"id":80334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80341,"src":"19175:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80332,"name":"uint256","nodeType":"ElementaryTypeName","src":"19175:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19174:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80353,"nodeType":"FunctionDefinition","src":"19447:147:165","nodes":[],"body":{"id":80352,"nodeType":"Block","src":"19519:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80347,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19536:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19536:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19546:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19536:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19559:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"19536:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80346,"id":80351,"nodeType":"Return","src":"19529:58:165"}]},"baseFunctions":[74816],"documentation":{"id":80342,"nodeType":"StructuredDocumentation","src":"19256:186:165","text":" @dev Returns the base fee for requesting code validation in WVARA ERC20 token.\n @return requestCodeValidationBaseFee The base fee for requesting code validation."},"functionSelector":"188509e9","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationBaseFee","nameLocation":"19456:28:165","parameters":{"id":80343,"nodeType":"ParameterList","parameters":[],"src":"19484:2:165"},"returnParameters":{"id":80346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80353,"src":"19510:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80344,"name":"uint256","nodeType":"ElementaryTypeName","src":"19510:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19509:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80365,"nodeType":"FunctionDefinition","src":"19846:149:165","nodes":[],"body":{"id":80364,"nodeType":"Block","src":"19919:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80359,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19936:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19936:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19936:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19959:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"19936:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80358,"id":80363,"nodeType":"Return","src":"19929:59:165"}]},"baseFunctions":[74822],"documentation":{"id":80354,"nodeType":"StructuredDocumentation","src":"19600:241:165","text":" @dev Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @return requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."},"functionSelector":"f1ef31ec","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationExtraFee","nameLocation":"19855:29:165","parameters":{"id":80355,"nodeType":"ParameterList","parameters":[],"src":"19884:2:165"},"returnParameters":{"id":80358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80365,"src":"19910:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80356,"name":"uint256","nodeType":"ElementaryTypeName","src":"19910:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19909:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80377,"nodeType":"FunctionDefinition","src":"20092:108:165","nodes":[],"body":{"id":80376,"nodeType":"Block","src":"20157:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80372,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"20174:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20184:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"20174:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80371,"id":80375,"nodeType":"Return","src":"20167:26:165"}]},"baseFunctions":[74829],"documentation":{"id":80366,"nodeType":"StructuredDocumentation","src":"20001:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20101:9:165","parameters":{"id":80367,"nodeType":"ParameterList","parameters":[],"src":"20110:2:165"},"returnParameters":{"id":80371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80377,"src":"20134:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80369,"nodeType":"UserDefinedTypeName","pathNode":{"id":80368,"name":"Gear.Timelines","nameLocations":["20134:4:165","20139:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83175,"src":"20134:14:165"},"referencedDeclaration":83175,"src":"20134:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20133:23:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80387,"nodeType":"FunctionDefinition","src":"20374:104:165","nodes":[],"body":{"id":80386,"nodeType":"Block","src":"20434:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80383,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20451:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20451:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80382,"id":80385,"nodeType":"Return","src":"20444:27:165"}]},"baseFunctions":[74835],"documentation":{"id":80378,"nodeType":"StructuredDocumentation","src":"20206:163:165","text":" @dev Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\n @return domainSeparator The domain separator."},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"20383:16:165","parameters":{"id":80379,"nodeType":"ParameterList","parameters":[],"src":"20399:2:165"},"returnParameters":{"id":80382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80387,"src":"20425:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20425:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20424:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80403,"nodeType":"FunctionDefinition","src":"20642:116:165","nodes":[],"body":{"id":80402,"nodeType":"Block","src":"20699:59:165","nodes":[],"statements":[{"expression":{"id":80400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80395,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"20709:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20709:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20719:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"20709:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20733:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"20709:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80399,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80390,"src":"20742:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20709:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80401,"nodeType":"ExpressionStatement","src":"20709:42:165"}]},"baseFunctions":[74841],"documentation":{"id":80388,"nodeType":"StructuredDocumentation","src":"20509:128:165","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":80393,"kind":"modifierInvocation","modifierName":{"id":80392,"name":"onlyOwner","nameLocations":["20689:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20689:9:165"},"nodeType":"ModifierInvocation","src":"20689:9:165"}],"name":"setMirror","nameLocation":"20651:9:165","parameters":{"id":80391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80390,"mutability":"mutable","name":"newMirror","nameLocation":"20669:9:165","nodeType":"VariableDeclaration","scope":80403,"src":"20661:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80389,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20660:19:165"},"returnParameters":{"id":80394,"nodeType":"ParameterList","parameters":[],"src":"20699:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80419,"nodeType":"FunctionDefinition","src":"20937:161:165","nodes":[],"body":{"id":80418,"nodeType":"Block","src":"21017:81:165","nodes":[],"statements":[{"expression":{"id":80416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80411,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21027:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21027:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21037:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21027:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21050:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"21027:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80415,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80406,"src":"21081:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21027:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80417,"nodeType":"ExpressionStatement","src":"21027:64:165"}]},"baseFunctions":[74847],"documentation":{"id":80404,"nodeType":"StructuredDocumentation","src":"20764:168:165","text":" @dev Sets the base fee for requesting code validation in WVARA ERC20 token.\n @param newBaseFee The new base fee for requesting code validation."},"functionSelector":"11bec80d","implemented":true,"kind":"function","modifiers":[{"id":80409,"kind":"modifierInvocation","modifierName":{"id":80408,"name":"onlyOwner","nameLocations":["21007:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21007:9:165"},"nodeType":"ModifierInvocation","src":"21007:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20946:31:165","parameters":{"id":80407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80406,"mutability":"mutable","name":"newBaseFee","nameLocation":"20986:10:165","nodeType":"VariableDeclaration","scope":80419,"src":"20978:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80405,"name":"uint256","nodeType":"ElementaryTypeName","src":"20978:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20977:20:165"},"returnParameters":{"id":80410,"nodeType":"ParameterList","parameters":[],"src":"21017:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80435,"nodeType":"FunctionDefinition","src":"21332:165:165","nodes":[],"body":{"id":80434,"nodeType":"Block","src":"21414:83:165","nodes":[],"statements":[{"expression":{"id":80432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80427,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21424:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21424:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21424:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21447:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"21424:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80431,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80422,"src":"21479:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21424:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80433,"nodeType":"ExpressionStatement","src":"21424:66:165"}]},"baseFunctions":[74853],"documentation":{"id":80420,"nodeType":"StructuredDocumentation","src":"21104:223:165","text":" @dev Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @param newExtraFee The new extra fee for requesting code validation on behalf of someone else."},"functionSelector":"0b9737ce","implemented":true,"kind":"function","modifiers":[{"id":80425,"kind":"modifierInvocation","modifierName":{"id":80424,"name":"onlyOwner","nameLocations":["21404:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21404:9:165"},"nodeType":"ModifierInvocation","src":"21404:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21341:32:165","parameters":{"id":80423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80422,"mutability":"mutable","name":"newExtraFee","nameLocation":"21382:11:165","nodeType":"VariableDeclaration","scope":80435,"src":"21374:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80421,"name":"uint256","nodeType":"ElementaryTypeName","src":"21374:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21373:21:165"},"returnParameters":{"id":80426,"nodeType":"ParameterList","parameters":[],"src":"21414:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80445,"nodeType":"FunctionDefinition","src":"21552:59:165","nodes":[],"body":{"id":80444,"nodeType":"Block","src":"21586:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80441,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"21596:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21596:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80443,"nodeType":"ExpressionStatement","src":"21596:8:165"}]},"baseFunctions":[74857],"documentation":{"id":80436,"nodeType":"StructuredDocumentation","src":"21503:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80439,"kind":"modifierInvocation","modifierName":{"id":80438,"name":"onlyOwner","nameLocations":["21576:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21576:9:165"},"nodeType":"ModifierInvocation","src":"21576:9:165"}],"name":"pause","nameLocation":"21561:5:165","parameters":{"id":80437,"nodeType":"ParameterList","parameters":[],"src":"21566:2:165"},"returnParameters":{"id":80440,"nodeType":"ParameterList","parameters":[],"src":"21586:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80455,"nodeType":"FunctionDefinition","src":"21668:63:165","nodes":[],"body":{"id":80454,"nodeType":"Block","src":"21704:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80451,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"21714:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21714:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80453,"nodeType":"ExpressionStatement","src":"21714:10:165"}]},"baseFunctions":[74861],"documentation":{"id":80446,"nodeType":"StructuredDocumentation","src":"21617:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80449,"kind":"modifierInvocation","modifierName":{"id":80448,"name":"onlyOwner","nameLocations":["21694:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21694:9:165"},"nodeType":"ModifierInvocation","src":"21694:9:165"}],"name":"unpause","nameLocation":"21677:7:165","parameters":{"id":80447,"nodeType":"ParameterList","parameters":[],"src":"21684:2:165"},"returnParameters":{"id":80450,"nodeType":"ParameterList","parameters":[],"src":"21704:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80510,"nodeType":"FunctionDefinition","src":"21832:385:165","nodes":[],"body":{"id":80509,"nodeType":"Block","src":"21870:347:165","nodes":[],"statements":[{"assignments":[80461],"declarations":[{"constant":false,"id":80461,"mutability":"mutable","name":"router","nameLocation":"21896:6:165","nodeType":"VariableDeclaration","scope":80509,"src":"21880:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80460,"nodeType":"UserDefinedTypeName","pathNode":{"id":80459,"name":"Storage","nameLocations":["21880:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"21880:7:165"},"referencedDeclaration":74490,"src":"21880:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80462,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21905:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21905:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21880:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80466,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"21933:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21940:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"21933:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21953:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"21933:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21969:1:165","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":80470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21961:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21961:7:165","typeDescriptions":{}}},"id":80472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21961:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21933:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80474,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74558,"src":"21973:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21973:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80477,"nodeType":"ExpressionStatement","src":"21925:72:165"},{"assignments":[80479],"declarations":[{"constant":false,"id":80479,"mutability":"mutable","name":"genesisHash","nameLocation":"22016:11:165","nodeType":"VariableDeclaration","scope":80509,"src":"22008:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22008:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80485,"initialValue":{"arguments":[{"expression":{"expression":{"id":80481,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22040:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22047:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22040:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22060:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83077,"src":"22040:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80480,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22030:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22030:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22008:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80487,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80479,"src":"22086:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22109:1:165","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":80489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22101:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22101:7:165","typeDescriptions":{}}},"id":80491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22101:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22086:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80493,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74561,"src":"22113:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22113:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22078:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22078:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80496,"nodeType":"ExpressionStatement","src":"22078:57:165"},{"expression":{"id":80507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22146:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22153:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22146:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22166:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"22146:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80503,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22183:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22190:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22183:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22203:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83077,"src":"22183:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80502,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22173:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22173:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22146:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80508,"nodeType":"ExpressionStatement","src":"22146:64:165"}]},"baseFunctions":[74865],"documentation":{"id":80456,"nodeType":"StructuredDocumentation","src":"21756:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21841:17:165","parameters":{"id":80457,"nodeType":"ParameterList","parameters":[],"src":"21858:2:165"},"returnParameters":{"id":80458,"nodeType":"ParameterList","parameters":[],"src":"21870:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80639,"nodeType":"FunctionDefinition","src":"23079:986:165","nodes":[],"body":{"id":80638,"nodeType":"Block","src":"23223:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23250:1:165","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":80527,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23241:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23256:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23241:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80532,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74564,"src":"23259:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23233:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23233:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80535,"nodeType":"ExpressionStatement","src":"23233:41:165"},{"assignments":[80538],"declarations":[{"constant":false,"id":80538,"mutability":"mutable","name":"router","nameLocation":"23301:6:165","nodeType":"VariableDeclaration","scope":80638,"src":"23285:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80537,"nodeType":"UserDefinedTypeName","pathNode":{"id":80536,"name":"Storage","nameLocations":["23285:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"23285:7:165"},"referencedDeclaration":74490,"src":"23285:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80541,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80539,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"23310:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23310:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23285:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23344:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"23337:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23357:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"23337:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23373:1:165","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":80547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23365:7:165","typeDescriptions":{}}},"id":80549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23337:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80551,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"23377:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23377:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23329:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23329:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80554,"nodeType":"ExpressionStatement","src":"23329:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":80564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80556,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23430:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23437:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23430:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23450:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"23430:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80560,"indexExpression":{"id":80559,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23456:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23430:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80561,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"23468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23473:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"23468:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23483:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83055,"src":"23468:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"23430:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80565,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"23492:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23492:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80555,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23422:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23422:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80568,"nodeType":"ExpressionStatement","src":"23422:107:165"},{"assignments":[80571],"declarations":[{"constant":false,"id":80571,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23553:12:165","nodeType":"VariableDeclaration","scope":80638,"src":"23540:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80570,"nodeType":"UserDefinedTypeName","pathNode":{"id":80569,"name":"IWrappedVara","nameLocations":["23540:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"23540:12:165"},"referencedDeclaration":75006,"src":"23540:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80577,"initialValue":{"arguments":[{"expression":{"expression":{"id":80573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23581:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23588:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"23581:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23602:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"23581:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80572,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"23568:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23568:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23540:74:165"},{"assignments":[80579],"declarations":[{"constant":false,"id":80579,"mutability":"mutable","name":"baseFee","nameLocation":"23633:7:165","nodeType":"VariableDeclaration","scope":80638,"src":"23625:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80578,"name":"uint256","nodeType":"ElementaryTypeName","src":"23625:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80583,"initialValue":{"expression":{"expression":{"id":80580,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23643:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23650:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23643:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23663:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"23643:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23625:66:165"},{"clauses":[{"block":{"id":80598,"nodeType":"Block","src":"23784:2:165","statements":[]},"errorName":"","id":80599,"nodeType":"TryCatchClause","src":"23784:2:165"},{"block":{"id":80600,"nodeType":"Block","src":"23793:2:165","statements":[]},"errorName":"","id":80601,"nodeType":"TryCatchClause","src":"23787:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80586,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23725:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23725:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80590,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23745:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23737:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80588,"name":"address","nodeType":"ElementaryTypeName","src":"23737:7:165","typeDescriptions":{}}},"id":80591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23737:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80592,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"23752:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80593,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80515,"src":"23761:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80594,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80517,"src":"23772:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80595,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80519,"src":"23776:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80596,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80521,"src":"23780:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80584,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"23705:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23718:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"23705:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23705:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80602,"nodeType":"TryStatement","src":"23701:94:165"},{"assignments":[80604],"declarations":[{"constant":false,"id":80604,"mutability":"mutable","name":"success","nameLocation":"23809:7:165","nodeType":"VariableDeclaration","scope":80638,"src":"23804:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80603,"name":"bool","nodeType":"ElementaryTypeName","src":"23804:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80615,"initialValue":{"arguments":[{"expression":{"id":80607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23845:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23849:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23845:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80611,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23865:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23857:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80609,"name":"address","nodeType":"ElementaryTypeName","src":"23857:7:165","typeDescriptions":{}}},"id":80612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23857:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80613,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"23872:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80605,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"23819:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23832:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"23819:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23819:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23804:76:165"},{"expression":{"arguments":[{"id":80617,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"23898:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80618,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"23907:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23907:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23890:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23890:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80621,"nodeType":"ExpressionStatement","src":"23890:38:165"},{"expression":{"id":80632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80622,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23939:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23939:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23959:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"23939:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80628,"indexExpression":{"id":80625,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23965:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23939:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80629,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"23976:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23981:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"23976:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23991:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"23976:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"23939:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80633,"nodeType":"ExpressionStatement","src":"23939:71:165"},{"eventCall":{"arguments":[{"id":80635,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"24050:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80634,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"24026:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24026:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80637,"nodeType":"EmitStatement","src":"24021:37:165"}]},"baseFunctions":[74879],"documentation":{"id":80511,"nodeType":"StructuredDocumentation","src":"22223:851:165","text":" @dev Requests code validation for the given code ID.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()`\n in the WVARA ERC20 token.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"8c4ace6a","implemented":true,"kind":"function","modifiers":[{"id":80524,"kind":"modifierInvocation","modifierName":{"id":80523,"name":"whenNotPaused","nameLocations":["23205:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"23205:13:165"},"nodeType":"ModifierInvocation","src":"23205:13:165"}],"name":"requestCodeValidation","nameLocation":"23088:21:165","parameters":{"id":80522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80513,"mutability":"mutable","name":"_codeId","nameLocation":"23118:7:165","nodeType":"VariableDeclaration","scope":80639,"src":"23110:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80515,"mutability":"mutable","name":"_deadline","nameLocation":"23135:9:165","nodeType":"VariableDeclaration","scope":80639,"src":"23127:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80514,"name":"uint256","nodeType":"ElementaryTypeName","src":"23127:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80517,"mutability":"mutable","name":"_v","nameLocation":"23152:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23146:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80516,"name":"uint8","nodeType":"ElementaryTypeName","src":"23146:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80519,"mutability":"mutable","name":"_r","nameLocation":"23164:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23156:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23156:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80521,"mutability":"mutable","name":"_s","nameLocation":"23176:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23168:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23168:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23109:70:165"},"returnParameters":{"id":80525,"nodeType":"ParameterList","parameters":[],"src":"23223:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80905,"nodeType":"FunctionDefinition","src":"25572:2418:165","nodes":[],"body":{"id":80904,"nodeType":"Block","src":"25882:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:165","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":80667,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25900:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25900:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25915:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25900:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80672,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74564,"src":"25918:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25918:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80666,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25892:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25892:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80675,"nodeType":"ExpressionStatement","src":"25892:41:165"},{"assignments":[80678],"declarations":[{"constant":false,"id":80678,"mutability":"mutable","name":"router","nameLocation":"25960:6:165","nodeType":"VariableDeclaration","scope":80904,"src":"25944:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80677,"nodeType":"UserDefinedTypeName","pathNode":{"id":80676,"name":"Storage","nameLocations":["25944:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"25944:7:165"},"referencedDeclaration":74490,"src":"25944:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80681,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80679,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"25969:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25969:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25944:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80683,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"25996:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26003:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25996:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26016:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"25996:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26032:1:165","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":80687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26024:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26024:7:165","typeDescriptions":{}}},"id":80689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26024:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25996:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80691,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"26036:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25988:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25988:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80694,"nodeType":"ExpressionStatement","src":"25988:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":80704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80696,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"26089:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26096:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"26089:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26109:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"26089:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80700,"indexExpression":{"id":80699,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"26115:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26089:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80701,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"26127:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26132:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"26127:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26142:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83055,"src":"26127:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"26089:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80705,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"26151:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26151:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80708,"nodeType":"ExpressionStatement","src":"26081:107:165"},{"assignments":[80710],"declarations":[{"constant":false,"id":80710,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26207:17:165","nodeType":"VariableDeclaration","scope":80904,"src":"26199:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80709,"name":"uint256","nodeType":"ElementaryTypeName","src":"26199:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80712,"initialValue":{"hexValue":"30","id":80711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26227:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26199:29:165"},{"body":{"id":80728,"nodeType":"Block","src":"26251:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80715,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26278:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80714,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26269:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26269:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26308:1:165","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":80718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26300:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26300:7:165","typeDescriptions":{}}},"id":80720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26300:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26269:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80724,"nodeType":"IfStatement","src":"26265:85:165","trueBody":{"id":80723,"nodeType":"Block","src":"26312:38:165","statements":[{"id":80722,"nodeType":"Break","src":"26330:5:165"}]}},{"expression":{"id":80726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26363:19:165","subExpression":{"id":80725,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26363:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80727,"nodeType":"ExpressionStatement","src":"26363:19:165"}]},"condition":{"hexValue":"74727565","id":80713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26245:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80729,"nodeType":"WhileStatement","src":"26238:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80731,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26411:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26423:6:165","memberName":"length","nodeType":"MemberAccess","src":"26411:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80733,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26433:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26411:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80736,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26476:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26488:6:165","memberName":"length","nodeType":"MemberAccess","src":"26476:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80738,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26496:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80735,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74577,"src":"26452:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26452:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26403:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26403:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80741,"nodeType":"ExpressionStatement","src":"26403:112:165"},{"body":{"id":80774,"nodeType":"Block","src":"26575:174:165","statements":[{"assignments":[80754],"declarations":[{"constant":false,"id":80754,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26597:16:165","nodeType":"VariableDeclaration","scope":80774,"src":"26589:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26589:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80758,"initialValue":{"arguments":[{"id":80756,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26625:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80755,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26616:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26616:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26589:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80760,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26649:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80762,"indexExpression":{"id":80761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26661:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26649:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80763,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"26667:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26649:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26701:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80767,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26704:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80769,"indexExpression":{"id":80768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26716:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26704:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80770,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"26720:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80765,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74586,"src":"26685:15:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":80771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26685:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26641:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26641:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80773,"nodeType":"ExpressionStatement","src":"26641:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80746,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26546:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80747,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26550:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26562:6:165","memberName":"length","nodeType":"MemberAccess","src":"26550:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26546:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80775,"initializationExpression":{"assignments":[80743],"declarations":[{"constant":false,"id":80743,"mutability":"mutable","name":"i","nameLocation":"26539:1:165","nodeType":"VariableDeclaration","scope":80775,"src":"26531:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80742,"name":"uint256","nodeType":"ElementaryTypeName","src":"26531:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80745,"initialValue":{"hexValue":"30","id":80744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26543:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26531:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26570:3:165","subExpression":{"id":80750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26570:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80752,"nodeType":"ExpressionStatement","src":"26570:3:165"},"nodeType":"ForStatement","src":"26526:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80777,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26825:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"26825:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80779,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"26844:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26825:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80782,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"26872:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80781,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74591,"src":"26855:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26855:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26817:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26817:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80785,"nodeType":"ExpressionStatement","src":"26817:66:165"},{"assignments":[80787],"declarations":[{"constant":false,"id":80787,"mutability":"mutable","name":"structHash","nameLocation":"26902:10:165","nodeType":"VariableDeclaration","scope":80904,"src":"26894:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26894:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80806,"initialValue":{"arguments":[{"arguments":[{"id":80791,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79504,"src":"26966:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80792,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27026:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80793,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27054:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80797,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"27106:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":80795,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27089:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27093:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27089:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27089:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80794,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27079:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27079:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80801,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27147:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80800,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"27137:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27137:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80803,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27176:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26938:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26942:6:165","memberName":"encode","nodeType":"MemberAccess","src":"26938:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26938:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80788,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26915:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26915:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26894:315:165"},{"assignments":[80808],"declarations":[{"constant":false,"id":80808,"mutability":"mutable","name":"hash","nameLocation":"27228:4:165","nodeType":"VariableDeclaration","scope":80904,"src":"27220:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27220:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80812,"initialValue":{"arguments":[{"id":80810,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80787,"src":"27252:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80809,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"27235:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27235:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27220:43:165"},{"assignments":[80814],"declarations":[{"constant":false,"id":80814,"mutability":"mutable","name":"signer","nameLocation":"27282:6:165","nodeType":"VariableDeclaration","scope":80904,"src":"27274:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80813,"name":"address","nodeType":"ElementaryTypeName","src":"27274:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80822,"initialValue":{"arguments":[{"id":80817,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80808,"src":"27305:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80818,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80651,"src":"27311:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80819,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80653,"src":"27316:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80820,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80655,"src":"27321:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80815,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"27291:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27297:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"27291:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":80821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27291:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27274:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80824,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80814,"src":"27343:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80825,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27353:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27343:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80828,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80814,"src":"27379:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80829,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27387:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80827,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"27365:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27365:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27335:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27335:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80832,"nodeType":"ExpressionStatement","src":"27335:64:165"},{"assignments":[80835],"declarations":[{"constant":false,"id":80835,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27423:12:165","nodeType":"VariableDeclaration","scope":80904,"src":"27410:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80834,"nodeType":"UserDefinedTypeName","pathNode":{"id":80833,"name":"IWrappedVara","nameLocations":["27410:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"27410:12:165"},"referencedDeclaration":75006,"src":"27410:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80841,"initialValue":{"arguments":[{"expression":{"expression":{"id":80837,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27451:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27458:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"27451:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27472:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"27451:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80836,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"27438:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27438:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27410:74:165"},{"assignments":[80843],"declarations":[{"constant":false,"id":80843,"mutability":"mutable","name":"fee","nameLocation":"27503:3:165","nodeType":"VariableDeclaration","scope":80904,"src":"27495:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80842,"name":"uint256","nodeType":"ElementaryTypeName","src":"27495:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80851,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80844,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27521:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27528:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27521:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27541:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"27521:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80847,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27572:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27579:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27572:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27592:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"27572:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27521:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27495:126:165"},{"clauses":[{"block":{"id":80865,"nodeType":"Block","src":"27713:2:165","statements":[]},"errorName":"","id":80866,"nodeType":"TryCatchClause","src":"27713:2:165"},{"block":{"id":80867,"nodeType":"Block","src":"27722:2:165","statements":[]},"errorName":"","id":80868,"nodeType":"TryCatchClause","src":"27716:8:165"}],"externalCall":{"arguments":[{"id":80854,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27655:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80857,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27675:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27667:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80855,"name":"address","nodeType":"ElementaryTypeName","src":"27667:7:165","typeDescriptions":{}}},"id":80858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27667:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80859,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80843,"src":"27682:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80860,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27687:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80861,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80657,"src":"27698:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80862,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80659,"src":"27703:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80863,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80661,"src":"27708:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80852,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80835,"src":"27635:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27648:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"27635:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80869,"nodeType":"TryStatement","src":"27631:93:165"},{"assignments":[80871],"declarations":[{"constant":false,"id":80871,"mutability":"mutable","name":"success","nameLocation":"27738:7:165","nodeType":"VariableDeclaration","scope":80904,"src":"27733:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80870,"name":"bool","nodeType":"ElementaryTypeName","src":"27733:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80881,"initialValue":{"arguments":[{"id":80874,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27774:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80877,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27794:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27786:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80875,"name":"address","nodeType":"ElementaryTypeName","src":"27786:7:165","typeDescriptions":{}}},"id":80878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27786:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80879,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80843,"src":"27801:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80872,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80835,"src":"27748:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27761:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"27748:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27748:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27733:72:165"},{"expression":{"arguments":[{"id":80883,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80871,"src":"27823:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80884,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"27832:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27832:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27815:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27815:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80887,"nodeType":"ExpressionStatement","src":"27815:38:165"},{"expression":{"id":80898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80888,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27864:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27871:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27864:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27884:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"27864:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80894,"indexExpression":{"id":80891,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27890:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27864:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80895,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"27901:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27906:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"27901:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27916:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"27901:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"27864:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80899,"nodeType":"ExpressionStatement","src":"27864:71:165"},{"eventCall":{"arguments":[{"id":80901,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27975:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80900,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"27951:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27951:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80903,"nodeType":"EmitStatement","src":"27946:37:165"}]},"baseFunctions":[74904],"documentation":{"id":80640,"nodeType":"StructuredDocumentation","src":"24071:1496:165","text":" @dev Requests code validation for the given code ID on behalf of someone else.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()`\n in the WVARA ERC20 token.\n @param _requester The address of the requester on behalf of whom the code validation is requested.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _blobHashes The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`.\n This is needed to verify that the transaction has expected blobs attached.\n @param _deadline Deadline for the transaction to be executed.\n @param _v1 ECDSA signature parameter (for requestCodeValidation).\n @param _r1 ECDSA signature parameter (for requestCodeValidation).\n @param _s1 ECDSA signature parameter (for requestCodeValidation).\n @param _v2 ECDSA signature parameter (for permit).\n @param _r2 ECDSA signature parameter (for permit).\n @param _s2 ECDSA signature parameter (for permit)."},"functionSelector":"f0fd702a","implemented":true,"kind":"function","modifiers":[{"id":80664,"kind":"modifierInvocation","modifierName":{"id":80663,"name":"whenNotPaused","nameLocations":["25868:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"25868:13:165"},"nodeType":"ModifierInvocation","src":"25868:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25581:29:165","parameters":{"id":80662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80642,"mutability":"mutable","name":"_requester","nameLocation":"25628:10:165","nodeType":"VariableDeclaration","scope":80905,"src":"25620:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80641,"name":"address","nodeType":"ElementaryTypeName","src":"25620:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80644,"mutability":"mutable","name":"_codeId","nameLocation":"25656:7:165","nodeType":"VariableDeclaration","scope":80905,"src":"25648:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25648:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80647,"mutability":"mutable","name":"_blobHashes","nameLocation":"25692:11:165","nodeType":"VariableDeclaration","scope":80905,"src":"25673:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25673:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80646,"nodeType":"ArrayTypeName","src":"25673:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80649,"mutability":"mutable","name":"_deadline","nameLocation":"25721:9:165","nodeType":"VariableDeclaration","scope":80905,"src":"25713:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80648,"name":"uint256","nodeType":"ElementaryTypeName","src":"25713:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80651,"mutability":"mutable","name":"_v1","nameLocation":"25746:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25740:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80650,"name":"uint8","nodeType":"ElementaryTypeName","src":"25740:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80653,"mutability":"mutable","name":"_r1","nameLocation":"25767:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25759:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25759:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80655,"mutability":"mutable","name":"_s1","nameLocation":"25788:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25780:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25780:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80657,"mutability":"mutable","name":"_v2","nameLocation":"25807:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25801:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80656,"name":"uint8","nodeType":"ElementaryTypeName","src":"25801:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80659,"mutability":"mutable","name":"_r2","nameLocation":"25828:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25820:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25820:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80661,"mutability":"mutable","name":"_s2","nameLocation":"25849:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25841:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25841:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25610:248:165"},"returnParameters":{"id":80665,"nodeType":"ParameterList","parameters":[],"src":"25882:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80950,"nodeType":"FunctionDefinition","src":"29070:396:165","nodes":[],"body":{"id":80949,"nodeType":"Block","src":"29224:242:165","nodes":[],"statements":[{"assignments":[80920,null],"declarations":[{"constant":false,"id":80920,"mutability":"mutable","name":"mirror","nameLocation":"29243:6:165","nodeType":"VariableDeclaration","scope":80949,"src":"29235:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80919,"name":"address","nodeType":"ElementaryTypeName","src":"29235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":80926,"initialValue":{"arguments":[{"id":80922,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80908,"src":"29269:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80923,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80910,"src":"29278:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29285:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80921,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"29254:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":80925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29254:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"29234:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80931,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80912,"src":"29341:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29373:1:165","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":80933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80932,"name":"address","nodeType":"ElementaryTypeName","src":"29365:7:165","typeDescriptions":{}}},"id":80935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29341:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":80939,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80912,"src":"29391:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29341:70:165","trueExpression":{"expression":{"id":80937,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29378:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29382:6:165","memberName":"sender","nodeType":"MemberAccess","src":"29378:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80941,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79936,"src":"29413:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":80942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29413:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":80943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29427:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":80944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29433:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":80928,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80920,"src":"29309:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80927,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"29301:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":80929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":80930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29330:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"29301:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":80945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80946,"nodeType":"ExpressionStatement","src":"29301:134:165"},{"expression":{"id":80947,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80920,"src":"29453:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80918,"id":80948,"nodeType":"Return","src":"29446:13:165"}]},"baseFunctions":[74916],"documentation":{"id":80906,"nodeType":"StructuredDocumentation","src":"27996:1069:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, and initializer.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":80915,"kind":"modifierInvocation","modifierName":{"id":80914,"name":"whenNotPaused","nameLocations":["29180:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"29180:13:165"},"nodeType":"ModifierInvocation","src":"29180:13:165"}],"name":"createProgram","nameLocation":"29079:13:165","parameters":{"id":80913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80908,"mutability":"mutable","name":"_codeId","nameLocation":"29101:7:165","nodeType":"VariableDeclaration","scope":80950,"src":"29093:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29093:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80910,"mutability":"mutable","name":"_salt","nameLocation":"29118:5:165","nodeType":"VariableDeclaration","scope":80950,"src":"29110:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80912,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29133:20:165","nodeType":"VariableDeclaration","scope":80950,"src":"29125:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80911,"name":"address","nodeType":"ElementaryTypeName","src":"29125:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29092:62:165"},"returnParameters":{"id":80918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80950,"src":"29211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80916,"name":"address","nodeType":"ElementaryTypeName","src":"29211:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29210:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81055,"nodeType":"FunctionDefinition","src":"30939:1031:165","nodes":[],"body":{"id":81054,"nodeType":"Block","src":"31244:726:165","nodes":[],"statements":[{"assignments":[80975,80978],"declarations":[{"constant":false,"id":80975,"mutability":"mutable","name":"mirror","nameLocation":"31263:6:165","nodeType":"VariableDeclaration","scope":81054,"src":"31255:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80974,"name":"address","nodeType":"ElementaryTypeName","src":"31255:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80978,"mutability":"mutable","name":"router","nameLocation":"31287:6:165","nodeType":"VariableDeclaration","scope":81054,"src":"31271:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80977,"nodeType":"UserDefinedTypeName","pathNode":{"id":80976,"name":"Storage","nameLocations":["31271:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"31271:7:165"},"referencedDeclaration":74490,"src":"31271:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80984,"initialValue":{"arguments":[{"id":80980,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80953,"src":"31312:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80981,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80955,"src":"31321:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31328:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80979,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"31297:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":80983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31297:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"31254:79:165"},{"assignments":[80987],"declarations":[{"constant":false,"id":80987,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31357:12:165","nodeType":"VariableDeclaration","scope":81054,"src":"31344:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80986,"nodeType":"UserDefinedTypeName","pathNode":{"id":80985,"name":"IWrappedVara","nameLocations":["31344:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"31344:12:165"},"referencedDeclaration":75006,"src":"31344:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80993,"initialValue":{"arguments":[{"expression":{"expression":{"id":80989,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80978,"src":"31385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31392:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"31385:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31406:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"31385:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80988,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"31372:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31372:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31344:74:165"},{"clauses":[{"block":{"id":81008,"nodeType":"Block","src":"31530:2:165","statements":[]},"errorName":"","id":81009,"nodeType":"TryCatchClause","src":"31530:2:165"},{"block":{"id":81010,"nodeType":"Block","src":"31539:2:165","statements":[]},"errorName":"","id":81011,"nodeType":"TryCatchClause","src":"31533:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31453:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31457:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31453:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81000,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31473:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31465:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80998,"name":"address","nodeType":"ElementaryTypeName","src":"31465:7:165","typeDescriptions":{}}},"id":81001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31465:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81002,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31480:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81003,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80961,"src":"31507:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81004,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80963,"src":"31518:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81005,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80965,"src":"31522:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81006,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80967,"src":"31526:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80994,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"31433:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31446:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"31433:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31433:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81012,"nodeType":"TryStatement","src":"31429:112:165"},{"assignments":[81014],"declarations":[{"constant":false,"id":81014,"mutability":"mutable","name":"success","nameLocation":"31555:7:165","nodeType":"VariableDeclaration","scope":81054,"src":"31550:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81013,"name":"bool","nodeType":"ElementaryTypeName","src":"31550:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81025,"initialValue":{"arguments":[{"expression":{"id":81017,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31591:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31595:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31591:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81021,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31611:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31603:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81019,"name":"address","nodeType":"ElementaryTypeName","src":"31603:7:165","typeDescriptions":{}}},"id":81022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81023,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31618:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":81015,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"31565:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31578:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"31565:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31565:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31550:94:165"},{"expression":{"arguments":[{"id":81027,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81014,"src":"31662:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81028,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"31671:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31671:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81026,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31654:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31654:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81031,"nodeType":"ExpressionStatement","src":"31654:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81036,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31760:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31792:1:165","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":81038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31784:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81037,"name":"address","nodeType":"ElementaryTypeName","src":"31784:7:165","typeDescriptions":{}}},"id":81040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31784:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31760:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81044,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31810:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31760:70:165","trueExpression":{"expression":{"id":81042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31797:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31801:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31797:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81046,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79936,"src":"31848:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31848:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31878:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81049,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31900:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81033,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80975,"src":"31711:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81032,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"31703:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31732:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"31703:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81051,"nodeType":"ExpressionStatement","src":"31703:236:165"},{"expression":{"id":81052,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80975,"src":"31957:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80973,"id":81053,"nodeType":"Return","src":"31950:13:165"}]},"baseFunctions":[74938],"documentation":{"id":80951,"nodeType":"StructuredDocumentation","src":"29472:1462:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0d91bf2a","implemented":true,"kind":"function","modifiers":[{"id":80970,"kind":"modifierInvocation","modifierName":{"id":80969,"name":"whenNotPaused","nameLocations":["31212:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"31212:13:165"},"nodeType":"ModifierInvocation","src":"31212:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"30948:34:165","parameters":{"id":80968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80953,"mutability":"mutable","name":"_codeId","nameLocation":"31000:7:165","nodeType":"VariableDeclaration","scope":81055,"src":"30992:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30992:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80955,"mutability":"mutable","name":"_salt","nameLocation":"31025:5:165","nodeType":"VariableDeclaration","scope":81055,"src":"31017:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31017:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80957,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31048:20:165","nodeType":"VariableDeclaration","scope":81055,"src":"31040:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80956,"name":"address","nodeType":"ElementaryTypeName","src":"31040:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80959,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31086:25:165","nodeType":"VariableDeclaration","scope":81055,"src":"31078:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80958,"name":"uint128","nodeType":"ElementaryTypeName","src":"31078:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80961,"mutability":"mutable","name":"_deadline","nameLocation":"31129:9:165","nodeType":"VariableDeclaration","scope":81055,"src":"31121:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80960,"name":"uint256","nodeType":"ElementaryTypeName","src":"31121:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80963,"mutability":"mutable","name":"_v","nameLocation":"31154:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31148:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80962,"name":"uint8","nodeType":"ElementaryTypeName","src":"31148:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80965,"mutability":"mutable","name":"_r","nameLocation":"31174:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31166:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31166:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80967,"mutability":"mutable","name":"_s","nameLocation":"31194:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31186:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31186:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30982:220:165"},"returnParameters":{"id":80973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80972,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81055,"src":"31235:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80971,"name":"address","nodeType":"ElementaryTypeName","src":"31235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31234:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81101,"nodeType":"FunctionDefinition","src":"33132:448:165","nodes":[],"body":{"id":81100,"nodeType":"Block","src":"33335:245:165","nodes":[],"statements":[{"assignments":[81072,null],"declarations":[{"constant":false,"id":81072,"mutability":"mutable","name":"mirror","nameLocation":"33354:6:165","nodeType":"VariableDeclaration","scope":81100,"src":"33346:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81071,"name":"address","nodeType":"ElementaryTypeName","src":"33346:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81078,"initialValue":{"arguments":[{"id":81074,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"33380:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81075,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81060,"src":"33389:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33396:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81073,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"33365:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33365:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"33345:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81083,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"33453:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33485:1:165","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":81085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33477:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81084,"name":"address","nodeType":"ElementaryTypeName","src":"33477:7:165","typeDescriptions":{}}},"id":81087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33477:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33453:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81091,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"33503:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33453:70:165","trueExpression":{"expression":{"id":81089,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33490:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33494:6:165","memberName":"sender","nodeType":"MemberAccess","src":"33490:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81093,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"33525:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33540:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33547:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81080,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81072,"src":"33421:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81079,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"33413:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33442:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"33413:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81097,"nodeType":"ExpressionStatement","src":"33413:136:165"},{"expression":{"id":81098,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81072,"src":"33567:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81070,"id":81099,"nodeType":"Return","src":"33560:13:165"}]},"baseFunctions":[74952],"documentation":{"id":81056,"nodeType":"StructuredDocumentation","src":"31976:1151:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":81067,"kind":"modifierInvocation","modifierName":{"id":81066,"name":"whenNotPaused","nameLocations":["33303:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"33303:13:165"},"nodeType":"ModifierInvocation","src":"33303:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"33141:29:165","parameters":{"id":81065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81058,"mutability":"mutable","name":"_codeId","nameLocation":"33188:7:165","nodeType":"VariableDeclaration","scope":81101,"src":"33180:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33180:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81060,"mutability":"mutable","name":"_salt","nameLocation":"33213:5:165","nodeType":"VariableDeclaration","scope":81101,"src":"33205:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33205:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81062,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33236:20:165","nodeType":"VariableDeclaration","scope":81101,"src":"33228:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81061,"name":"address","nodeType":"ElementaryTypeName","src":"33228:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81064,"mutability":"mutable","name":"_abiInterface","nameLocation":"33274:13:165","nodeType":"VariableDeclaration","scope":81101,"src":"33266:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81063,"name":"address","nodeType":"ElementaryTypeName","src":"33266:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33170:123:165"},"returnParameters":{"id":81070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81101,"src":"33326:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81068,"name":"address","nodeType":"ElementaryTypeName","src":"33326:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33325:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81207,"nodeType":"FunctionDefinition","src":"35136:1080:165","nodes":[],"body":{"id":81206,"nodeType":"Block","src":"35487:729:165","nodes":[],"statements":[{"assignments":[81128,81131],"declarations":[{"constant":false,"id":81128,"mutability":"mutable","name":"mirror","nameLocation":"35506:6:165","nodeType":"VariableDeclaration","scope":81206,"src":"35498:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81127,"name":"address","nodeType":"ElementaryTypeName","src":"35498:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81131,"mutability":"mutable","name":"router","nameLocation":"35530:6:165","nodeType":"VariableDeclaration","scope":81206,"src":"35514:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81130,"nodeType":"UserDefinedTypeName","pathNode":{"id":81129,"name":"Storage","nameLocations":["35514:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"35514:7:165"},"referencedDeclaration":74490,"src":"35514:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81137,"initialValue":{"arguments":[{"id":81133,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81104,"src":"35555:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81134,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81106,"src":"35564:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35571:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81132,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"35540:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35540:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"35497:80:165"},{"assignments":[81140],"declarations":[{"constant":false,"id":81140,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35601:12:165","nodeType":"VariableDeclaration","scope":81206,"src":"35588:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":81139,"nodeType":"UserDefinedTypeName","pathNode":{"id":81138,"name":"IWrappedVara","nameLocations":["35588:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"35588:12:165"},"referencedDeclaration":75006,"src":"35588:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81146,"initialValue":{"arguments":[{"expression":{"expression":{"id":81142,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81131,"src":"35629:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35636:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"35629:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35650:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"35629:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81141,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"35616:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":81145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35616:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35588:74:165"},{"clauses":[{"block":{"id":81161,"nodeType":"Block","src":"35774:2:165","statements":[]},"errorName":"","id":81162,"nodeType":"TryCatchClause","src":"35774:2:165"},{"block":{"id":81163,"nodeType":"Block","src":"35783:2:165","statements":[]},"errorName":"","id":81164,"nodeType":"TryCatchClause","src":"35777:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35697:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35701:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35697:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81153,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35717:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35709:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81151,"name":"address","nodeType":"ElementaryTypeName","src":"35709:7:165","typeDescriptions":{}}},"id":81154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35709:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81155,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35724:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81156,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81114,"src":"35751:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81157,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81116,"src":"35762:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81158,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81118,"src":"35766:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81159,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81120,"src":"35770:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81147,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"35677:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35690:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"35677:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35677:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81165,"nodeType":"TryStatement","src":"35673:112:165"},{"assignments":[81167],"declarations":[{"constant":false,"id":81167,"mutability":"mutable","name":"success","nameLocation":"35799:7:165","nodeType":"VariableDeclaration","scope":81206,"src":"35794:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81166,"name":"bool","nodeType":"ElementaryTypeName","src":"35794:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81178,"initialValue":{"arguments":[{"expression":{"id":81170,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35835:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35839:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35835:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81174,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35855:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35847:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81172,"name":"address","nodeType":"ElementaryTypeName","src":"35847:7:165","typeDescriptions":{}}},"id":81175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81176,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35862:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":81168,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"35809:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35822:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"35809:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35809:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35794:94:165"},{"expression":{"arguments":[{"id":81180,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81167,"src":"35906:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81181,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"35915:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35915:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35898:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35898:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81184,"nodeType":"ExpressionStatement","src":"35898:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81189,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"36004:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36036:1:165","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":81191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36028:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81190,"name":"address","nodeType":"ElementaryTypeName","src":"36028:7:165","typeDescriptions":{}}},"id":81193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36028:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36004:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81197,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"36054:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36004:70:165","trueExpression":{"expression":{"id":81195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36041:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36045:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36041:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81199,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81110,"src":"36092:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36123:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81201,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"36146:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81186,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81128,"src":"35955:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81185,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"35947:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35976:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"35947:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81203,"nodeType":"ExpressionStatement","src":"35947:238:165"},{"expression":{"id":81204,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81128,"src":"36203:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81126,"id":81205,"nodeType":"Return","src":"36196:13:165"}]},"baseFunctions":[74976],"documentation":{"id":81102,"nodeType":"StructuredDocumentation","src":"33586:1545:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"ee32004f","implemented":true,"kind":"function","modifiers":[{"id":81123,"kind":"modifierInvocation","modifierName":{"id":81122,"name":"whenNotPaused","nameLocations":["35455:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"35455:13:165"},"nodeType":"ModifierInvocation","src":"35455:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35145:49:165","parameters":{"id":81121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81104,"mutability":"mutable","name":"_codeId","nameLocation":"35212:7:165","nodeType":"VariableDeclaration","scope":81207,"src":"35204:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35204:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81106,"mutability":"mutable","name":"_salt","nameLocation":"35237:5:165","nodeType":"VariableDeclaration","scope":81207,"src":"35229:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35229:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81108,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35260:20:165","nodeType":"VariableDeclaration","scope":81207,"src":"35252:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81107,"name":"address","nodeType":"ElementaryTypeName","src":"35252:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81110,"mutability":"mutable","name":"_abiInterface","nameLocation":"35298:13:165","nodeType":"VariableDeclaration","scope":81207,"src":"35290:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81109,"name":"address","nodeType":"ElementaryTypeName","src":"35290:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81112,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35329:25:165","nodeType":"VariableDeclaration","scope":81207,"src":"35321:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81111,"name":"uint128","nodeType":"ElementaryTypeName","src":"35321:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81114,"mutability":"mutable","name":"_deadline","nameLocation":"35372:9:165","nodeType":"VariableDeclaration","scope":81207,"src":"35364:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81113,"name":"uint256","nodeType":"ElementaryTypeName","src":"35364:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81116,"mutability":"mutable","name":"_v","nameLocation":"35397:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35391:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81115,"name":"uint8","nodeType":"ElementaryTypeName","src":"35391:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81118,"mutability":"mutable","name":"_r","nameLocation":"35417:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35409:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35409:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81120,"mutability":"mutable","name":"_s","nameLocation":"35437:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35429:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35429:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35194:251:165"},"returnParameters":{"id":81126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81207,"src":"35478:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81124,"name":"address","nodeType":"ElementaryTypeName","src":"35478:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35477:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81374,"nodeType":"FunctionDefinition","src":"36677:2151:165","nodes":[],"body":{"id":81373,"nodeType":"Block","src":"36853:1975:165","nodes":[],"statements":[{"assignments":[81224],"declarations":[{"constant":false,"id":81224,"mutability":"mutable","name":"router","nameLocation":"36879:6:165","nodeType":"VariableDeclaration","scope":81373,"src":"36863:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81223,"nodeType":"UserDefinedTypeName","pathNode":{"id":81222,"name":"Storage","nameLocations":["36863:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"36863:7:165"},"referencedDeclaration":74490,"src":"36863:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81227,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81225,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"36888:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36888:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36863:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81229,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"36916:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36923:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"36916:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36936:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"36916:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36952:1:165","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":81233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36944:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36944:7:165","typeDescriptions":{}}},"id":81235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36944:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36916:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81237,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"36956:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36956:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81228,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36908:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36908:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81240,"nodeType":"ExpressionStatement","src":"36908:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81241,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37154:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37161:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74461,"src":"37154:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37173:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37154:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81268,"nodeType":"IfStatement","src":"37150:295:165","trueBody":{"id":81267,"nodeType":"Block","src":"37176:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81248,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37222:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37229:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"37222:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81250,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37240:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37247:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"37240:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81246,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"37198:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37203:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83515,"src":"37198:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37198:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81253,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74605,"src":"37256:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37256:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37190:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37190:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81256,"nodeType":"ExpressionStatement","src":"37190:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81258,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37367:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37373:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"37367:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81260,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37392:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"37385:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37367:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81263,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"37408:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37408:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37359:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37359:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81266,"nodeType":"ExpressionStatement","src":"37359:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81270,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37558:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37565:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37558:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37586:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"37558:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81273,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37594:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37601:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82996,"src":"37594:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37558:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81276,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"37629:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37629:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37537:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37537:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81279,"nodeType":"ExpressionStatement","src":"37537:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81281,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37693:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37700:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37693:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37721:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"37693:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81284,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37741:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"37734:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37693:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81287,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"37757:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37757:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37685:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37685:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81290,"nodeType":"ExpressionStatement","src":"37685:97:165"},{"assignments":[81292],"declarations":[{"constant":false,"id":81292,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37801:20:165","nodeType":"VariableDeclaration","scope":81373,"src":"37793:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37793:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81297,"initialValue":{"arguments":[{"id":81294,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37837:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81295,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37845:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81293,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"37824:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37824:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37793:59:165"},{"assignments":[81299],"declarations":[{"constant":false,"id":81299,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37870:20:165","nodeType":"VariableDeclaration","scope":81373,"src":"37862:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37862:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81304,"initialValue":{"arguments":[{"id":81301,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37906:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81302,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37914:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81300,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81698,"src":"37893:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37893:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37862:59:165"},{"assignments":[81306],"declarations":[{"constant":false,"id":81306,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37939:22:165","nodeType":"VariableDeclaration","scope":81373,"src":"37931:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37931:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81311,"initialValue":{"arguments":[{"id":81308,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37979:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81309,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37987:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81307,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"37964:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37964:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37931:63:165"},{"assignments":[81313],"declarations":[{"constant":false,"id":81313,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"38012:25:165","nodeType":"VariableDeclaration","scope":81373,"src":"38004:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81318,"initialValue":{"arguments":[{"id":81315,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38058:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81316,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38066:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81314,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82003,"src":"38040:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38040:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38004:69:165"},{"assignments":[81320],"declarations":[{"constant":false,"id":81320,"mutability":"mutable","name":"_batchHash","nameLocation":"38092:10:165","nodeType":"VariableDeclaration","scope":81373,"src":"38084:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38084:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81336,"initialValue":{"arguments":[{"expression":{"id":81323,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38143:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38150:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"38143:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81325,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38173:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38180:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38173:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81327,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38208:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38215:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82996,"src":"38208:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81329,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38255:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38262:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"38255:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81331,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"38282:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81332,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81299,"src":"38316:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81333,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81306,"src":"38350:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81334,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81313,"src":"38386:25:165","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81321,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"38105:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38110:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83359,"src":"38105:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38105:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38084:337:165"},{"expression":{"id":81343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81337,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38432:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38439:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38432:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38460:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38432:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81342,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38467:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38432:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81344,"nodeType":"ExpressionStatement","src":"38432:45:165"},{"expression":{"id":81352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81345,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38487:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38494:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38487:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38515:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"38487:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81350,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38527:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38534:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38527:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38487:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81353,"nodeType":"ExpressionStatement","src":"38487:61:165"},{"eventCall":{"arguments":[{"id":81355,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38579:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81354,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74495,"src":"38564:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38564:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81357,"nodeType":"EmitStatement","src":"38559:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81361,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38665:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81362,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79489,"src":"38673:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81363,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38692:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81364,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81214,"src":"38704:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},{"id":81365,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81217,"src":"38720:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81366,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38733:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38740:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38733:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81359,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"38622:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38627:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":83801,"src":"38622:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83233_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38622:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81369,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74639,"src":"38782:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38782:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38601:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38601:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81372,"nodeType":"ExpressionStatement","src":"38601:220:165"}]},"baseFunctions":[74989],"documentation":{"id":81208,"nodeType":"StructuredDocumentation","src":"36222:450:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\n @param _batch The batch commitment data.\n @param _signatureType The type of signature to validate.\n @param _signatures The signatures for the batch commitment."},"functionSelector":"1622441d","implemented":true,"kind":"function","modifiers":[{"id":81220,"kind":"modifierInvocation","modifierName":{"id":81219,"name":"nonReentrant","nameLocations":["36840:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"36840:12:165"},"nodeType":"ModifierInvocation","src":"36840:12:165"}],"name":"commitBatch","nameLocation":"36686:11:165","parameters":{"id":81218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81211,"mutability":"mutable","name":"_batch","nameLocation":"36737:6:165","nodeType":"VariableDeclaration","scope":81374,"src":"36707:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81210,"nodeType":"UserDefinedTypeName","pathNode":{"id":81209,"name":"Gear.BatchCommitment","nameLocations":["36707:4:165","36712:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"36707:20:165"},"referencedDeclaration":83020,"src":"36707:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81214,"mutability":"mutable","name":"_signatureType","nameLocation":"36772:14:165","nodeType":"VariableDeclaration","scope":81374,"src":"36753:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"typeName":{"id":81213,"nodeType":"UserDefinedTypeName","pathNode":{"id":81212,"name":"Gear.SignatureType","nameLocations":["36753:4:165","36758:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83233,"src":"36753:18:165"},"referencedDeclaration":83233,"src":"36753:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81217,"mutability":"mutable","name":"_signatures","nameLocation":"36813:11:165","nodeType":"VariableDeclaration","scope":81374,"src":"36796:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81215,"name":"bytes","nodeType":"ElementaryTypeName","src":"36796:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81216,"nodeType":"ArrayTypeName","src":"36796:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36697:133:165"},"returnParameters":{"id":81221,"nodeType":"ParameterList","parameters":[],"src":"36853:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81477,"nodeType":"FunctionDefinition","src":"38872:934:165","nodes":[],"body":{"id":81476,"nodeType":"Block","src":"38986:820:165","nodes":[],"statements":[{"assignments":[81390],"declarations":[{"constant":false,"id":81390,"mutability":"mutable","name":"router","nameLocation":"39012:6:165","nodeType":"VariableDeclaration","scope":81476,"src":"38996:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81389,"nodeType":"UserDefinedTypeName","pathNode":{"id":81388,"name":"Storage","nameLocations":["38996:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38996:7:165"},"referencedDeclaration":74490,"src":"38996:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81391,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"39021:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39021:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38996:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81395,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39048:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39055:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"39048:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39068:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"39048:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39084:1:165","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":81399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39076:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39076:7:165","typeDescriptions":{}}},"id":81401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39076:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39048:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81403,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"39088:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39088:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81394,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39040:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39040:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81406,"nodeType":"ExpressionStatement","src":"39040:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":81416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81408,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39141:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39148:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39141:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39161:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"39141:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81412,"indexExpression":{"id":81411,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39167:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39141:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81413,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"39179:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39184:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"39179:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39194:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"39179:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"39141:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81417,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"39205:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39205:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39133:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39133:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81420,"nodeType":"ExpressionStatement","src":"39133:91:165"},{"assignments":[81422],"declarations":[{"constant":false,"id":81422,"mutability":"mutable","name":"salt","nameLocation":"39393:4:165","nodeType":"VariableDeclaration","scope":81476,"src":"39385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81428,"initialValue":{"arguments":[{"id":81425,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39435:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81426,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"39444:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81423,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"39400:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39407:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"39400:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39400:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39385:65:165"},{"assignments":[81430],"declarations":[{"constant":false,"id":81430,"mutability":"mutable","name":"actorId","nameLocation":"39468:7:165","nodeType":"VariableDeclaration","scope":81476,"src":"39460:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81429,"name":"address","nodeType":"ElementaryTypeName","src":"39460:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81449,"initialValue":{"condition":{"id":81431,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81380,"src":"39478:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81444,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39601:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39593:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81442,"name":"address","nodeType":"ElementaryTypeName","src":"39593:7:165","typeDescriptions":{}}},"id":81445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39593:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81446,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"39608:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81440,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"39567:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$82749_$","typeString":"type(library Clones)"}},"id":81441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39574:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82518,"src":"39567:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39567:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39478:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81436,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39540:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39532:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81434,"name":"address","nodeType":"ElementaryTypeName","src":"39532:7:165","typeDescriptions":{}}},"id":81437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39532:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81438,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"39547:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81432,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"39501:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$82833_$","typeString":"type(library ClonesSmall)"}},"id":81433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39513:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82771,"src":"39501:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39501:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39460:153:165"},{"expression":{"id":81458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81450,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39624:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39631:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39624:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39644:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"39624:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81456,"indexExpression":{"id":81453,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39653:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39624:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81457,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39664:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39624:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81459,"nodeType":"ExpressionStatement","src":"39624:47:165"},{"expression":{"id":81465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39681:35:165","subExpression":{"expression":{"expression":{"id":81460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39681:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39688:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39681:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39701:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"39681:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81466,"nodeType":"ExpressionStatement","src":"39681:35:165"},{"eventCall":{"arguments":[{"id":81468,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39747:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81469,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39756:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81467,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"39732:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39732:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81471,"nodeType":"EmitStatement","src":"39727:37:165"},{"expression":{"components":[{"id":81472,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39783:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81473,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39792:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81474,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39782:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81387,"id":81475,"nodeType":"Return","src":"39775:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38881:14:165","parameters":{"id":81381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81376,"mutability":"mutable","name":"_codeId","nameLocation":"38904:7:165","nodeType":"VariableDeclaration","scope":81477,"src":"38896:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38896:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81378,"mutability":"mutable","name":"_salt","nameLocation":"38921:5:165","nodeType":"VariableDeclaration","scope":81477,"src":"38913:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81380,"mutability":"mutable","name":"_isSmall","nameLocation":"38933:8:165","nodeType":"VariableDeclaration","scope":81477,"src":"38928:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81379,"name":"bool","nodeType":"ElementaryTypeName","src":"38928:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38895:47:165"},"returnParameters":{"id":81387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81477,"src":"38960:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81382,"name":"address","nodeType":"ElementaryTypeName","src":"38960:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81477,"src":"38969:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81385,"nodeType":"UserDefinedTypeName","pathNode":{"id":81384,"name":"Storage","nameLocations":["38969:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38969:7:165"},"referencedDeclaration":74490,"src":"38969:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38959:26:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81556,"nodeType":"FunctionDefinition","src":"39812:846:165","nodes":[],"body":{"id":81555,"nodeType":"Block","src":"39922:736:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81489,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"39940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39947:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"39940:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39963:6:165","memberName":"length","nodeType":"MemberAccess","src":"39940:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39973:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39940:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81494,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"39976:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39976:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39932:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39932:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81497,"nodeType":"ExpressionStatement","src":"39932:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81498,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"40017:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40024:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"40017:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40040:6:165","memberName":"length","nodeType":"MemberAccess","src":"40017:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40050:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40017:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81508,"nodeType":"IfStatement","src":"40013:177:165","trueBody":{"id":81507,"nodeType":"Block","src":"40053:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40176:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81503,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40166:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81487,"id":81506,"nodeType":"Return","src":"40159:20:165"}]}},{"assignments":[81513],"declarations":[{"constant":false,"id":81513,"mutability":"mutable","name":"_commitment","nameLocation":"40230:11:165","nodeType":"VariableDeclaration","scope":81555,"src":"40200:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81512,"nodeType":"UserDefinedTypeName","pathNode":{"id":81511,"name":"Gear.ChainCommitment","nameLocations":["40200:4:165","40205:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82972,"src":"40200:20:165"},"referencedDeclaration":82972,"src":"40200:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81518,"initialValue":{"baseExpression":{"expression":{"id":81514,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"40244:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40251:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"40244:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81517,"indexExpression":{"hexValue":"30","id":81516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40267:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40244:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40200:69:165"},{"assignments":[81520],"declarations":[{"constant":false,"id":81520,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40288:16:165","nodeType":"VariableDeclaration","scope":81555,"src":"40280:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40280:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81526,"initialValue":{"arguments":[{"id":81522,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81480,"src":"40326:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81523,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40334:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40346:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":82965,"src":"40334:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81521,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82123,"src":"40307:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40307:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40280:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81528,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40398:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82968,"src":"40386:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81527,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74500,"src":"40374:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40374:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81531,"nodeType":"EmitStatement","src":"40369:34:165"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81532,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40417:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40429:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40417:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40461:1:165","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":81535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40453:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40453:7:165","typeDescriptions":{}}},"id":81537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40453:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40417:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81545,"nodeType":"IfStatement","src":"40413:127:165","trueBody":{"id":81544,"nodeType":"Block","src":"40465:75:165","statements":[{"eventCall":{"arguments":[{"expression":{"id":81540,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40496:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40508:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40496:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81539,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74505,"src":"40484:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40484:45:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81543,"nodeType":"EmitStatement","src":"40479:50:165"}]}},{"expression":{"arguments":[{"id":81548,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81520,"src":"40582:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81549,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40600:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40612:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82968,"src":"40600:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81551,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40618:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40630:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40618:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81546,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"40557:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40562:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83255,"src":"40557:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40557:94:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81487,"id":81554,"nodeType":"Return","src":"40550:101:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39821:12:165","parameters":{"id":81484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81480,"mutability":"mutable","name":"router","nameLocation":"39850:6:165","nodeType":"VariableDeclaration","scope":81556,"src":"39834:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81479,"nodeType":"UserDefinedTypeName","pathNode":{"id":81478,"name":"Storage","nameLocations":["39834:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"39834:7:165"},"referencedDeclaration":74490,"src":"39834:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81483,"mutability":"mutable","name":"_batch","nameLocation":"39888:6:165","nodeType":"VariableDeclaration","scope":81556,"src":"39858:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81482,"nodeType":"UserDefinedTypeName","pathNode":{"id":81481,"name":"Gear.BatchCommitment","nameLocations":["39858:4:165","39863:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"39858:20:165"},"referencedDeclaration":83020,"src":"39858:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39833:62:165"},"returnParameters":{"id":81487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81556,"src":"39913:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39912:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81698,"nodeType":"FunctionDefinition","src":"40664:1402:165","nodes":[],"body":{"id":81697,"nodeType":"Block","src":"40774:1292:165","nodes":[],"statements":[{"assignments":[81568],"declarations":[{"constant":false,"id":81568,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40792:18:165","nodeType":"VariableDeclaration","scope":81697,"src":"40784:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81567,"name":"uint256","nodeType":"ElementaryTypeName","src":"40784:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81572,"initialValue":{"expression":{"expression":{"id":81569,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"40813:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40820:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"40813:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40836:6:165","memberName":"length","nodeType":"MemberAccess","src":"40813:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40784:58:165"},{"assignments":[81574],"declarations":[{"constant":false,"id":81574,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40860:23:165","nodeType":"VariableDeclaration","scope":81697,"src":"40852:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81573,"name":"uint256","nodeType":"ElementaryTypeName","src":"40852:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81578,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81575,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81568,"src":"40886:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40907:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40886:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40852:57:165"},{"assignments":[81580],"declarations":[{"constant":false,"id":81580,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40927:18:165","nodeType":"VariableDeclaration","scope":81697,"src":"40919:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81579,"name":"uint256","nodeType":"ElementaryTypeName","src":"40919:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81585,"initialValue":{"arguments":[{"id":81583,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81574,"src":"40964:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81581,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40948:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40955:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40948:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40948:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40919:69:165"},{"assignments":[81587],"declarations":[{"constant":false,"id":81587,"mutability":"mutable","name":"offset","nameLocation":"41006:6:165","nodeType":"VariableDeclaration","scope":81697,"src":"40998:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81586,"name":"uint256","nodeType":"ElementaryTypeName","src":"40998:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81589,"initialValue":{"hexValue":"30","id":81588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41015:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40998:18:165"},{"body":{"id":81688,"nodeType":"Block","src":"41076:884:165","statements":[{"assignments":[81604],"declarations":[{"constant":false,"id":81604,"mutability":"mutable","name":"_commitment","nameLocation":"41119:11:165","nodeType":"VariableDeclaration","scope":81688,"src":"41090:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81603,"nodeType":"UserDefinedTypeName","pathNode":{"id":81602,"name":"Gear.CodeCommitment","nameLocations":["41090:4:165","41095:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":82959,"src":"41090:19:165"},"referencedDeclaration":82959,"src":"41090:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81609,"initialValue":{"baseExpression":{"expression":{"id":81605,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"41133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41140:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"41133:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81608,"indexExpression":{"id":81607,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41156:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41133:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41090:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81611,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41198:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41205:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41198:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41218:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41198:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81616,"indexExpression":{"expression":{"id":81614,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41224:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41236:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41224:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41198:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41243:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41248:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"41243:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41258:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"41243:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"41198:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81621,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74617,"src":"41295:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41295:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41173:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41173:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81624,"nodeType":"ExpressionStatement","src":"41173:164:165"},{"condition":{"expression":{"id":81625,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41356:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41368:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41356:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81656,"nodeType":"Block","src":"41541:81:165","statements":[{"expression":{"id":81654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41559:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81648,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41566:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41573:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41566:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41586:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41566:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81653,"indexExpression":{"expression":{"id":81651,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41604:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41592:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41566:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81655,"nodeType":"ExpressionStatement","src":"41559:48:165"}]},"id":81657,"nodeType":"IfStatement","src":"41352:270:165","trueBody":{"id":81647,"nodeType":"Block","src":"41375:160:165","statements":[{"expression":{"id":81638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41393:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41400:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41393:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41413:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41393:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81634,"indexExpression":{"expression":{"id":81630,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41419:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41431:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41419:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41393:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81635,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41437:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41442:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"41437:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41452:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"41437:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"41393:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":81639,"nodeType":"ExpressionStatement","src":"41393:68:165"},{"expression":{"id":81645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41479:41:165","subExpression":{"expression":{"expression":{"id":81640,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41479:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41486:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41479:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41499:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"41479:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81646,"nodeType":"ExpressionStatement","src":"41479:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81659,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41658:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41670:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41658:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81661,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41674:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41686:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41674:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81658,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"41641:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41641:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81664,"nodeType":"EmitStatement","src":"41636:56:165"},{"assignments":[81666],"declarations":[{"constant":false,"id":81666,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41715:18:165","nodeType":"VariableDeclaration","scope":81688,"src":"41707:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41707:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81674,"initialValue":{"arguments":[{"expression":{"id":81669,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41760:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41772:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41760:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81671,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41776:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41788:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41776:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81667,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41736:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41741:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83272,"src":"41736:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41736:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41707:87:165"},{"expression":{"arguments":[{"id":81678,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81580,"src":"41834:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81679,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81587,"src":"41854:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81680,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81666,"src":"41862:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81675,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41808:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41815:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"41808:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41808:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81682,"nodeType":"ExpressionStatement","src":"41808:73:165"},{"id":81687,"nodeType":"UncheckedBlock","src":"41895:55:165","statements":[{"expression":{"id":81685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81683,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81587,"src":"41923:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41933:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41923:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81686,"nodeType":"ExpressionStatement","src":"41923:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41047:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81595,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81568,"src":"41051:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41047:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81689,"initializationExpression":{"assignments":[81591],"declarations":[{"constant":false,"id":81591,"mutability":"mutable","name":"i","nameLocation":"41040:1:165","nodeType":"VariableDeclaration","scope":81689,"src":"41032:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81590,"name":"uint256","nodeType":"ElementaryTypeName","src":"41032:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81593,"initialValue":{"hexValue":"30","id":81592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41044:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"41032:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41071:3:165","subExpression":{"id":81597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41071:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81599,"nodeType":"ExpressionStatement","src":"41071:3:165"},"nodeType":"ForStatement","src":"41027:933:165"},{"expression":{"arguments":[{"id":81692,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81580,"src":"42012:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42032:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81694,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81574,"src":"42035:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81690,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"41977:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41984:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"41977:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41977:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81566,"id":81696,"nodeType":"Return","src":"41970:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40673:12:165","parameters":{"id":81563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81559,"mutability":"mutable","name":"router","nameLocation":"40702:6:165","nodeType":"VariableDeclaration","scope":81698,"src":"40686:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81558,"nodeType":"UserDefinedTypeName","pathNode":{"id":81557,"name":"Storage","nameLocations":["40686:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"40686:7:165"},"referencedDeclaration":74490,"src":"40686:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81562,"mutability":"mutable","name":"_batch","nameLocation":"40740:6:165","nodeType":"VariableDeclaration","scope":81698,"src":"40710:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81561,"nodeType":"UserDefinedTypeName","pathNode":{"id":81560,"name":"Gear.BatchCommitment","nameLocations":["40710:4:165","40715:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"40710:20:165"},"referencedDeclaration":83020,"src":"40710:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40685:62:165"},"returnParameters":{"id":81566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81698,"src":"40765:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40765:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40764:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81855,"nodeType":"FunctionDefinition","src":"42108:1705:165","nodes":[],"body":{"id":81854,"nodeType":"Block","src":"42220:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81710,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42238:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42245:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42238:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42263:6:165","memberName":"length","nodeType":"MemberAccess","src":"42238:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42273:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42238:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81715,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74619,"src":"42276:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42276:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42230:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42230:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81718,"nodeType":"ExpressionStatement","src":"42230:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81719,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42319:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42326:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42319:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42344:6:165","memberName":"length","nodeType":"MemberAccess","src":"42319:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42354:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42319:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81729,"nodeType":"IfStatement","src":"42315:179:165","trueBody":{"id":81728,"nodeType":"Block","src":"42357:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42480:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81724,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42470:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42470:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81708,"id":81727,"nodeType":"Return","src":"42463:20:165"}]}},{"assignments":[81734],"declarations":[{"constant":false,"id":81734,"mutability":"mutable","name":"_commitment","nameLocation":"42536:11:165","nodeType":"VariableDeclaration","scope":81854,"src":"42504:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81733,"nodeType":"UserDefinedTypeName","pathNode":{"id":81732,"name":"Gear.RewardsCommitment","nameLocations":["42504:4:165","42509:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":83030,"src":"42504:22:165"},"referencedDeclaration":83030,"src":"42504:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81739,"initialValue":{"baseExpression":{"expression":{"id":81735,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42550:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42557:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42550:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81738,"indexExpression":{"hexValue":"30","id":81737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42575:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42550:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42504:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81741,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42596:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42608:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42596:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81743,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42620:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42627:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"42620:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42596:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81746,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74621,"src":"42643:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42643:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42588:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42588:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81749,"nodeType":"ExpressionStatement","src":"42588:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81751,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42699:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42711:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42699:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81753,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42724:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42731:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"42724:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42744:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"42724:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42699:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81757,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74623,"src":"42755:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42755:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81750,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42691:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42691:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81760,"nodeType":"ExpressionStatement","src":"42691:99:165"},{"assignments":[81762],"declarations":[{"constant":false,"id":81762,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42809:18:165","nodeType":"VariableDeclaration","scope":81854,"src":"42801:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81761,"name":"uint256","nodeType":"ElementaryTypeName","src":"42801:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81769,"initialValue":{"arguments":[{"id":81765,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42846:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81766,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42854:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42866:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42854:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81763,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"42830:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42835:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84009,"src":"42830:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42830:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42801:75:165"},{"assignments":[81771],"declarations":[{"constant":false,"id":81771,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42894:13:165","nodeType":"VariableDeclaration","scope":81854,"src":"42886:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81770,"name":"uint256","nodeType":"ElementaryTypeName","src":"42886:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81778,"initialValue":{"arguments":[{"id":81774,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42926:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81775,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42934:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42941:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"42934:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81772,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"42910:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42915:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84009,"src":"42910:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42910:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42886:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81780,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81762,"src":"42975:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81781,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42996:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42975:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81783,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74625,"src":"43011:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43011:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42967:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42967:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81786,"nodeType":"ExpressionStatement","src":"42967:78:165"},{"assignments":[81788],"declarations":[{"constant":false,"id":81788,"mutability":"mutable","name":"_middleware","nameLocation":"43064:11:165","nodeType":"VariableDeclaration","scope":81854,"src":"43056:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81787,"name":"address","nodeType":"ElementaryTypeName","src":"43056:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81792,"initialValue":{"expression":{"expression":{"id":81789,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43078:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43085:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43078:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43099:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82950,"src":"43078:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43056:53:165"},{"assignments":[81794],"declarations":[{"constant":false,"id":81794,"mutability":"mutable","name":"success","nameLocation":"43124:7:165","nodeType":"VariableDeclaration","scope":81854,"src":"43119:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81793,"name":"bool","nodeType":"ElementaryTypeName","src":"43119:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81810,"initialValue":{"arguments":[{"id":81801,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43202:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81802,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43215:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43227:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43215:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43237:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83033,"src":"43215:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81805,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43246:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43258:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83027,"src":"43246:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43266:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"43246:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43215:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":81796,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43147:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43154:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43147:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43168:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"43147:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81795,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"43134:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":81799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43194:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"43134:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"43119:159:165"},{"expression":{"arguments":[{"id":81812,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81794,"src":"43296:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81813,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74627,"src":"43305:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43305:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81811,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43288:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43288:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81816,"nodeType":"ExpressionStatement","src":"43288:38:165"},{"assignments":[81818],"declarations":[{"constant":false,"id":81818,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43345:20:165","nodeType":"VariableDeclaration","scope":81854,"src":"43337:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43337:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81833,"initialValue":{"arguments":[{"expression":{"expression":{"id":81823,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43449:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43456:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43449:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43470:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"43449:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81826,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43483:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43495:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43483:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43505:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83033,"src":"43483:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81829,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43513:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43525:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43513:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43535:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83035,"src":"43513:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":81820,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43380:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81819,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43368:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43406:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"43368:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":81832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43337:216:165"},{"assignments":[81835],"declarations":[{"constant":false,"id":81835,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43572:18:165","nodeType":"VariableDeclaration","scope":81854,"src":"43564:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43564:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81845,"initialValue":{"arguments":[{"expression":{"id":81840,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43654:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43666:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83027,"src":"43654:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81842,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43675:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43687:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43675:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81837,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43617:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81836,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43605:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43630:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"43605:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83046_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43564:133:165"},{"expression":{"arguments":[{"id":81848,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81818,"src":"43742:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81849,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81835,"src":"43764:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81850,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43784:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43796:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43784:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81846,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"43715:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43720:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83294,"src":"43715:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43715:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81708,"id":81853,"nodeType":"Return","src":"43708:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"42117:14:165","parameters":{"id":81705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81701,"mutability":"mutable","name":"router","nameLocation":"42148:6:165","nodeType":"VariableDeclaration","scope":81855,"src":"42132:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81700,"nodeType":"UserDefinedTypeName","pathNode":{"id":81699,"name":"Storage","nameLocations":["42132:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"42132:7:165"},"referencedDeclaration":74490,"src":"42132:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81704,"mutability":"mutable","name":"_batch","nameLocation":"42186:6:165","nodeType":"VariableDeclaration","scope":81855,"src":"42156:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81703,"nodeType":"UserDefinedTypeName","pathNode":{"id":81702,"name":"Gear.BatchCommitment","nameLocations":["42156:4:165","42161:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"42156:20:165"},"referencedDeclaration":83020,"src":"42156:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"42131:62:165"},"returnParameters":{"id":81708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81855,"src":"42211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42211:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42210:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82003,"nodeType":"FunctionDefinition","src":"43880:1705:165","nodes":[],"body":{"id":82002,"nodeType":"Block","src":"43995:1590:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81868,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44013:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44020:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44013:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44041:6:165","memberName":"length","nodeType":"MemberAccess","src":"44013:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44013:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81873,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"44054:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44054:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81867,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44005:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44005:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81876,"nodeType":"ExpressionStatement","src":"44005:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81877,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44100:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44107:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44100:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44128:6:165","memberName":"length","nodeType":"MemberAccess","src":"44100:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44138:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44100:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81887,"nodeType":"IfStatement","src":"44096:182:165","trueBody":{"id":81886,"nodeType":"Block","src":"44141:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44264:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81882,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44254:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44254:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81866,"id":81885,"nodeType":"Return","src":"44247:20:165"}]}},{"assignments":[81892],"declarations":[{"constant":false,"id":81892,"mutability":"mutable","name":"_commitment","nameLocation":"44323:11:165","nodeType":"VariableDeclaration","scope":82002,"src":"44288:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":81891,"nodeType":"UserDefinedTypeName","pathNode":{"id":81890,"name":"Gear.ValidatorsCommitment","nameLocations":["44288:4:165","44293:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"44288:25:165"},"referencedDeclaration":82986,"src":"44288:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":81897,"initialValue":{"baseExpression":{"expression":{"id":81893,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44344:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44337:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81896,"indexExpression":{"hexValue":"30","id":81895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44365:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44337:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44288:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81899,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44398:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"44386:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44409:6:165","memberName":"length","nodeType":"MemberAccess","src":"44386:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44418:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44386:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81904,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"44421:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44421:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44378:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44378:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81907,"nodeType":"ExpressionStatement","src":"44378:65:165"},{"assignments":[81909],"declarations":[{"constant":false,"id":81909,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44516:15:165","nodeType":"VariableDeclaration","scope":82002,"src":"44508:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81908,"name":"uint256","nodeType":"ElementaryTypeName","src":"44508:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81921,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81910,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44535:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44541:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44535:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81912,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44553:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44560:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44553:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44573:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"44553:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44535:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44534:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":81917,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44586:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44593:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44586:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44603:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"44586:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44534:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44508:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81923,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44625:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44637:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44625:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81925,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81909,"src":"44649:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":81926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44667:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44649:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44625:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81929,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74633,"src":"44670:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44670:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44617:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44617:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81932,"nodeType":"ExpressionStatement","src":"44617:76:165"},{"assignments":[81934],"declarations":[{"constant":false,"id":81934,"mutability":"mutable","name":"nextEraStart","nameLocation":"44712:12:165","nodeType":"VariableDeclaration","scope":82002,"src":"44704:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81933,"name":"uint256","nodeType":"ElementaryTypeName","src":"44704:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81945,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81935,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44727:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44734:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44727:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44747:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"44727:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81938,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44759:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44766:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44759:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44776:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"44759:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":81941,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44782:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44794:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44782:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44759:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44727:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44704:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81947,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44820:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44826:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44820:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81949,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"44839:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81950,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44854:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44861:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44854:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44871:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"44854:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44839:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44820:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81955,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74635,"src":"44881:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44881:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81946,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44812:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44812:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81958,"nodeType":"ExpressionStatement","src":"44812:90:165"},{"assignments":[81963],"declarations":[{"constant":false,"id":81963,"mutability":"mutable","name":"_validators","nameLocation":"44984:11:165","nodeType":"VariableDeclaration","scope":82002,"src":"44960:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":81962,"nodeType":"UserDefinedTypeName","pathNode":{"id":81961,"name":"Gear.Validators","nameLocations":["44960:4:165","44965:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"44960:15:165"},"referencedDeclaration":82928,"src":"44960:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":81968,"initialValue":{"arguments":[{"id":81966,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"45025:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":81964,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"44998:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45003:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":83845,"src":"44998:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":81967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44998:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44960:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81970,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81963,"src":"45050:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":81971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45062:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"45050:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81972,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45081:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45087:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45081:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45050:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81975,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"45098:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45098:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81969,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45042:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45042:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81978,"nodeType":"ExpressionStatement","src":"45042:85:165"},{"expression":{"arguments":[{"id":81980,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81963,"src":"45220:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":81981,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45245:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45257:22:165","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"45245:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":81983,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45293:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45305:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"45293:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":81985,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45338:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45350:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":82980,"src":"45338:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81987,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45397:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45409:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"45397:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":81989,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"45433:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81979,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82240,"src":"45190:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82928_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82907_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":81990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45190:265:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81991,"nodeType":"ExpressionStatement","src":"45190:265:165"},{"eventCall":{"arguments":[{"expression":{"id":81993,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45497:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45509:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"45497:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81992,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"45471:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45471:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81996,"nodeType":"EmitStatement","src":"45466:52:165"},{"expression":{"arguments":[{"id":81999,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45566:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":81997,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"45536:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45541:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83322,"src":"45536:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$82986_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":82000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45536:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81866,"id":82001,"nodeType":"Return","src":"45529:49:165"}]},"documentation":{"id":81856,"nodeType":"StructuredDocumentation","src":"43819:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43889:17:165","parameters":{"id":81863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81859,"mutability":"mutable","name":"router","nameLocation":"43923:6:165","nodeType":"VariableDeclaration","scope":82003,"src":"43907:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81858,"nodeType":"UserDefinedTypeName","pathNode":{"id":81857,"name":"Storage","nameLocations":["43907:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"43907:7:165"},"referencedDeclaration":74490,"src":"43907:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81862,"mutability":"mutable","name":"_batch","nameLocation":"43961:6:165","nodeType":"VariableDeclaration","scope":82003,"src":"43931:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81861,"nodeType":"UserDefinedTypeName","pathNode":{"id":81860,"name":"Gear.BatchCommitment","nameLocations":["43931:4:165","43936:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"43931:20:165"},"referencedDeclaration":83020,"src":"43931:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43906:62:165"},"returnParameters":{"id":81866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82003,"src":"43986:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43986:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43985:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82123,"nodeType":"FunctionDefinition","src":"45591:1168:165","nodes":[],"body":{"id":82122,"nodeType":"Block","src":"45735:1024:165","nodes":[],"statements":[{"assignments":[82016],"declarations":[{"constant":false,"id":82016,"mutability":"mutable","name":"transitionsLen","nameLocation":"45753:14:165","nodeType":"VariableDeclaration","scope":82122,"src":"45745:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82015,"name":"uint256","nodeType":"ElementaryTypeName","src":"45745:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82019,"initialValue":{"expression":{"id":82017,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"45770:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45783:6:165","memberName":"length","nodeType":"MemberAccess","src":"45770:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45745:44:165"},{"assignments":[82021],"declarations":[{"constant":false,"id":82021,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45807:19:165","nodeType":"VariableDeclaration","scope":82122,"src":"45799:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82020,"name":"uint256","nodeType":"ElementaryTypeName","src":"45799:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82025,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82022,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"45829:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45846:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45829:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45799:49:165"},{"assignments":[82027],"declarations":[{"constant":false,"id":82027,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45866:23:165","nodeType":"VariableDeclaration","scope":82122,"src":"45858:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82026,"name":"uint256","nodeType":"ElementaryTypeName","src":"45858:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82032,"initialValue":{"arguments":[{"id":82030,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82021,"src":"45908:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82028,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"45892:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45899:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"45892:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45892:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45858:70:165"},{"assignments":[82034],"declarations":[{"constant":false,"id":82034,"mutability":"mutable","name":"offset","nameLocation":"45946:6:165","nodeType":"VariableDeclaration","scope":82122,"src":"45938:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82033,"name":"uint256","nodeType":"ElementaryTypeName","src":"45938:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82036,"initialValue":{"hexValue":"30","id":82035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45955:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45938:18:165"},{"body":{"id":82113,"nodeType":"Block","src":"46012:640:165","statements":[{"assignments":[82051],"declarations":[{"constant":false,"id":82051,"mutability":"mutable","name":"transition","nameLocation":"46056:10:165","nodeType":"VariableDeclaration","scope":82113,"src":"46026:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82050,"nodeType":"UserDefinedTypeName","pathNode":{"id":82049,"name":"Gear.StateTransition","nameLocations":["46026:4:165","46031:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"46026:20:165"},"referencedDeclaration":83167,"src":"46026:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82055,"initialValue":{"baseExpression":{"id":82052,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"46069:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82054,"indexExpression":{"id":82053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"46082:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46069:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"46026:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82057,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82006,"src":"46107:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46114:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"46107:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46127:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"46107:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82062,"indexExpression":{"expression":{"id":82060,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46136:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46147:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"46136:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46107:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46159:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46107:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82065,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"46162:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46162:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46099:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46099:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82068,"nodeType":"ExpressionStatement","src":"46099:80:165"},{"assignments":[82070],"declarations":[{"constant":false,"id":82070,"mutability":"mutable","name":"value","nameLocation":"46202:5:165","nodeType":"VariableDeclaration","scope":82113,"src":"46194:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82069,"name":"uint128","nodeType":"ElementaryTypeName","src":"46194:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82072,"initialValue":{"hexValue":"30","id":82071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46210:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46194:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82073,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46230:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46241:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"46230:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46259:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46230:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46264:38:165","subExpression":{"expression":{"id":82077,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46265:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46276:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"46265:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"46230:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82087,"nodeType":"IfStatement","src":"46226:144:165","trueBody":{"id":82086,"nodeType":"Block","src":"46304:66:165","statements":[{"expression":{"id":82084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82070,"src":"46322:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82082,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46330:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46341:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"46330:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46322:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82085,"nodeType":"ExpressionStatement","src":"46322:33:165"}]}},{"assignments":[82089],"declarations":[{"constant":false,"id":82089,"mutability":"mutable","name":"transitionHash","nameLocation":"46392:14:165","nodeType":"VariableDeclaration","scope":82113,"src":"46384:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46384:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82099,"initialValue":{"arguments":[{"id":82097,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46474:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82091,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46417:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46428:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"46417:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82090,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"46409:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":82093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":82094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46437:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74394,"src":"46409:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83167_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82070,"src":"46467:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46409:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83167_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46384:101:165"},{"expression":{"arguments":[{"id":82103,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46525:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82104,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82034,"src":"46550:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82105,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82089,"src":"46558:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82100,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46499:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46506:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"46499:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46499:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82107,"nodeType":"ExpressionStatement","src":"46499:74:165"},{"id":82112,"nodeType":"UncheckedBlock","src":"46587:55:165","statements":[{"expression":{"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82108,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82034,"src":"46615:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46625:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46615:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82111,"nodeType":"ExpressionStatement","src":"46615:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"45987:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82042,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"45991:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45987:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82114,"initializationExpression":{"assignments":[82038],"declarations":[{"constant":false,"id":82038,"mutability":"mutable","name":"i","nameLocation":"45980:1:165","nodeType":"VariableDeclaration","scope":82114,"src":"45972:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82037,"name":"uint256","nodeType":"ElementaryTypeName","src":"45972:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82040,"initialValue":{"hexValue":"30","id":82039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45984:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45972:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"46007:3:165","subExpression":{"id":82044,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"46007:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82046,"nodeType":"ExpressionStatement","src":"46007:3:165"},"nodeType":"ForStatement","src":"45967:685:165"},{"expression":{"arguments":[{"id":82117,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46704:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46729:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82119,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82021,"src":"46732:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82115,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"46669:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46676:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"46669:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":82120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46669:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82014,"id":82121,"nodeType":"Return","src":"46662:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45600:18:165","parameters":{"id":82011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82006,"mutability":"mutable","name":"router","nameLocation":"45635:6:165","nodeType":"VariableDeclaration","scope":82123,"src":"45619:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82005,"nodeType":"UserDefinedTypeName","pathNode":{"id":82004,"name":"Storage","nameLocations":["45619:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"45619:7:165"},"referencedDeclaration":74490,"src":"45619:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82010,"mutability":"mutable","name":"_transitions","nameLocation":"45675:12:165","nodeType":"VariableDeclaration","scope":82123,"src":"45643:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82008,"nodeType":"UserDefinedTypeName","pathNode":{"id":82007,"name":"Gear.StateTransition","nameLocations":["45643:4:165","45648:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"45643:20:165"},"referencedDeclaration":83167,"src":"45643:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82009,"nodeType":"ArrayTypeName","src":"45643:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45618:70:165"},"returnParameters":{"id":82014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82123,"src":"45722:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45722:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45721:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82240,"nodeType":"FunctionDefinition","src":"46765:1539:165","nodes":[],"body":{"id":82239,"nodeType":"Block","src":"47086:1218:165","nodes":[],"statements":[{"condition":{"id":82141,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82128,"src":"47100:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82170,"nodeType":"IfStatement","src":"47096:752:165","trueBody":{"id":82169,"nodeType":"Block","src":"47125:723:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82145,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47530:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47554:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"47530:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82147,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47557:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47581:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"47557:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82143,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"47507:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47513:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"47507:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47507:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82150,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74552,"src":"47601:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47601:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47482:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47482:166:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82153,"nodeType":"ExpressionStatement","src":"47482:166:165"},{"expression":{"id":82158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82154,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47662:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47674:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"47662:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82157,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47696:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47662:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82159,"nodeType":"ExpressionStatement","src":"47662:57:165"},{"expression":{"id":82167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82160,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47733:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47745:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"47733:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82165,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82133,"src":"47802:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82163,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"47788:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84555_$","typeString":"type(library SSTORE2)"}},"id":82164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47796:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84411,"src":"47788:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47788:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47733:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82168,"nodeType":"ExpressionStatement","src":"47733:104:165"}]}},{"body":{"id":82198,"nodeType":"Block","src":"47911:114:165","statements":[{"assignments":[82184],"declarations":[{"constant":false,"id":82184,"mutability":"mutable","name":"_validator","nameLocation":"47933:10:165","nodeType":"VariableDeclaration","scope":82198,"src":"47925:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82183,"name":"address","nodeType":"ElementaryTypeName","src":"47925:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82189,"initialValue":{"baseExpression":{"expression":{"id":82185,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47946:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47958:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"47946:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82188,"indexExpression":{"id":82187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47963:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47946:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47925:40:165"},{"expression":{"id":82196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82190,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47979:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47991:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"47979:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82194,"indexExpression":{"id":82192,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82184,"src":"47995:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47979:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48009:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47979:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82197,"nodeType":"ExpressionStatement","src":"47979:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47877:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82176,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47881:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47893:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"47881:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47898:6:165","memberName":"length","nodeType":"MemberAccess","src":"47881:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47877:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82199,"initializationExpression":{"assignments":[82172],"declarations":[{"constant":false,"id":82172,"mutability":"mutable","name":"i","nameLocation":"47870:1:165","nodeType":"VariableDeclaration","scope":82199,"src":"47862:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82171,"name":"uint256","nodeType":"ElementaryTypeName","src":"47862:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82174,"initialValue":{"hexValue":"30","id":82173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47874:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47862:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47906:3:165","subExpression":{"id":82180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47906:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82182,"nodeType":"ExpressionStatement","src":"47906:3:165"},"nodeType":"ForStatement","src":"47857:168:165"},{"body":{"id":82225,"nodeType":"Block","src":"48086:111:165","statements":[{"assignments":[82212],"declarations":[{"constant":false,"id":82212,"mutability":"mutable","name":"_validator","nameLocation":"48108:10:165","nodeType":"VariableDeclaration","scope":82225,"src":"48100:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82211,"name":"address","nodeType":"ElementaryTypeName","src":"48100:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82216,"initialValue":{"baseExpression":{"id":82213,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48121:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82215,"indexExpression":{"id":82214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48136:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"48121:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48100:38:165"},{"expression":{"id":82223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82217,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48152:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48164:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"48152:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82221,"indexExpression":{"id":82219,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82212,"src":"48168:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48152:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48182:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"48152:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82224,"nodeType":"ExpressionStatement","src":"48152:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82204,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48054:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82205,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48058:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48073:6:165","memberName":"length","nodeType":"MemberAccess","src":"48058:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48054:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82226,"initializationExpression":{"assignments":[82201],"declarations":[{"constant":false,"id":82201,"mutability":"mutable","name":"i","nameLocation":"48047:1:165","nodeType":"VariableDeclaration","scope":82226,"src":"48039:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82200,"name":"uint256","nodeType":"ElementaryTypeName","src":"48039:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82203,"initialValue":{"hexValue":"30","id":82202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"48039:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48081:3:165","subExpression":{"id":82208,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48081:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82210,"nodeType":"ExpressionStatement","src":"48081:3:165"},"nodeType":"ForStatement","src":"48034:163:165"},{"expression":{"id":82231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82227,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48206:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48218:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"48206:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82230,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48225:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"48206:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82232,"nodeType":"ExpressionStatement","src":"48206:33:165"},{"expression":{"id":82237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82233,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48249:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48261:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"48249:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82236,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82138,"src":"48280:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48249:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82238,"nodeType":"ExpressionStatement","src":"48249:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46774:16:165","parameters":{"id":82139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82126,"mutability":"mutable","name":"_validators","nameLocation":"46824:11:165","nodeType":"VariableDeclaration","scope":82240,"src":"46800:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82125,"nodeType":"UserDefinedTypeName","pathNode":{"id":82124,"name":"Gear.Validators","nameLocations":["46800:4:165","46805:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"46800:15:165"},"referencedDeclaration":82928,"src":"46800:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82128,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"46850:23:165","nodeType":"VariableDeclaration","scope":82240,"src":"46845:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82127,"name":"bool","nodeType":"ElementaryTypeName","src":"46845:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82131,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46915:23:165","nodeType":"VariableDeclaration","scope":82240,"src":"46883:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82130,"nodeType":"UserDefinedTypeName","pathNode":{"id":82129,"name":"Gear.AggregatedPublicKey","nameLocations":["46883:4:165","46888:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"46883:24:165"},"referencedDeclaration":82907,"src":"46883:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82133,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46961:34:165","nodeType":"VariableDeclaration","scope":82240,"src":"46948:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82132,"name":"bytes","nodeType":"ElementaryTypeName","src":"46948:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82136,"mutability":"mutable","name":"_newValidators","nameLocation":"47022:14:165","nodeType":"VariableDeclaration","scope":82240,"src":"47005:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82134,"name":"address","nodeType":"ElementaryTypeName","src":"47005:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82135,"nodeType":"ArrayTypeName","src":"47005:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82138,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"47054:17:165","nodeType":"VariableDeclaration","scope":82240,"src":"47046:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82137,"name":"uint256","nodeType":"ElementaryTypeName","src":"47046:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46790:287:165"},"returnParameters":{"id":82140,"nodeType":"ParameterList","parameters":[],"src":"47086:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82253,"nodeType":"FunctionDefinition","src":"48310:192:165","nodes":[],"body":{"id":82252,"nodeType":"Block","src":"48375:127:165","nodes":[],"statements":[{"assignments":[82247],"declarations":[{"constant":false,"id":82247,"mutability":"mutable","name":"slot","nameLocation":"48393:4:165","nodeType":"VariableDeclaration","scope":82252,"src":"48385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82246,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82250,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82248,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82265,"src":"48400:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48400:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48385:32:165"},{"AST":{"nativeSrc":"48453:43:165","nodeType":"YulBlock","src":"48453:43:165","statements":[{"nativeSrc":"48467:19:165","nodeType":"YulAssignment","src":"48467:19:165","value":{"name":"slot","nativeSrc":"48482:4:165","nodeType":"YulIdentifier","src":"48482:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"48467:11:165","nodeType":"YulIdentifier","src":"48467:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82244,"isOffset":false,"isSlot":true,"src":"48467:11:165","suffix":"slot","valueSize":1},{"declaration":82247,"isOffset":false,"isSlot":false,"src":"48482:4:165","valueSize":1}],"flags":["memory-safe"],"id":82251,"nodeType":"InlineAssembly","src":"48428:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"48319:7:165","parameters":{"id":82241,"nodeType":"ParameterList","parameters":[],"src":"48326:2:165"},"returnParameters":{"id":82245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82244,"mutability":"mutable","name":"router","nameLocation":"48367:6:165","nodeType":"VariableDeclaration","scope":82253,"src":"48351:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82243,"nodeType":"UserDefinedTypeName","pathNode":{"id":82242,"name":"Storage","nameLocations":["48351:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"48351:7:165"},"referencedDeclaration":74490,"src":"48351:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"48350:24:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82265,"nodeType":"FunctionDefinition","src":"48508:128:165","nodes":[],"body":{"id":82264,"nodeType":"Block","src":"48566:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82260,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"48610:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82258,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48583:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48595:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48583:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48583:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48624:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48583:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82257,"id":82263,"nodeType":"Return","src":"48576:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48517:15:165","parameters":{"id":82254,"nodeType":"ParameterList","parameters":[],"src":"48532:2:165"},"returnParameters":{"id":82257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82265,"src":"48557:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48556:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82293,"nodeType":"FunctionDefinition","src":"48642:240:165","nodes":[],"body":{"id":82292,"nodeType":"Block","src":"48710:172:165","nodes":[],"statements":[{"assignments":[82273],"declarations":[{"constant":false,"id":82273,"mutability":"mutable","name":"slot","nameLocation":"48728:4:165","nodeType":"VariableDeclaration","scope":82292,"src":"48720:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48720:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82278,"initialValue":{"arguments":[{"id":82276,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82267,"src":"48762:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82274,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"48735:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48750:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"48735:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48735:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48720:52:165"},{"expression":{"id":82286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82282,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"48809:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82279,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48782:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48794:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48782:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48782:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48823:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48782:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82285,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82273,"src":"48831:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48782:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82287,"nodeType":"ExpressionStatement","src":"48782:53:165"},{"eventCall":{"arguments":[{"id":82289,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82273,"src":"48870:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82288,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74541,"src":"48851:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48851:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82291,"nodeType":"EmitStatement","src":"48846:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82270,"kind":"modifierInvocation","modifierName":{"id":82269,"name":"onlyOwner","nameLocations":["48700:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"48700:9:165"},"nodeType":"ModifierInvocation","src":"48700:9:165"}],"name":"_setStorageSlot","nameLocation":"48651:15:165","parameters":{"id":82268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82267,"mutability":"mutable","name":"namespace","nameLocation":"48681:9:165","nodeType":"VariableDeclaration","scope":82293,"src":"48667:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82266,"name":"string","nodeType":"ElementaryTypeName","src":"48667:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48666:25:165"},"returnParameters":{"id":82271,"nodeType":"ParameterList","parameters":[],"src":"48710:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82352,"nodeType":"FunctionDefinition","src":"49030:396:165","nodes":[],"body":{"id":82351,"nodeType":"Block","src":"49071:355:165","nodes":[],"statements":[{"assignments":[82301],"declarations":[{"constant":false,"id":82301,"mutability":"mutable","name":"router","nameLocation":"49097:6:165","nodeType":"VariableDeclaration","scope":82351,"src":"49081:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82300,"nodeType":"UserDefinedTypeName","pathNode":{"id":82299,"name":"Storage","nameLocations":["49081:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"49081:7:165"},"referencedDeclaration":74490,"src":"49081:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82304,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82302,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"49106:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49106:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"49081:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82306,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82301,"src":"49133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49140:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"49133:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49153:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"49133:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49169:1:165","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":82310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49161:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49161:7:165","typeDescriptions":{}}},"id":82312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49161:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49133:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82314,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"49173:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49173:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49125:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82317,"nodeType":"ExpressionStatement","src":"49125:82:165"},{"assignments":[82319],"declarations":[{"constant":false,"id":82319,"mutability":"mutable","name":"value","nameLocation":"49226:5:165","nodeType":"VariableDeclaration","scope":82351,"src":"49218:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82318,"name":"uint128","nodeType":"ElementaryTypeName","src":"49218:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82325,"initialValue":{"arguments":[{"expression":{"id":82322,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49242:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49246:5:165","memberName":"value","nodeType":"MemberAccess","src":"49242:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49234:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82320,"name":"uint128","nodeType":"ElementaryTypeName","src":"49234:7:165","typeDescriptions":{}}},"id":82324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49234:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"49218:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82319,"src":"49270:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49278:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49270:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82330,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74641,"src":"49281:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49281:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49262:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49262:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82333,"nodeType":"ExpressionStatement","src":"49262:39:165"},{"assignments":[82335],"declarations":[{"constant":false,"id":82335,"mutability":"mutable","name":"actorId","nameLocation":"49320:7:165","nodeType":"VariableDeclaration","scope":82351,"src":"49312:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82334,"name":"address","nodeType":"ElementaryTypeName","src":"49312:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82338,"initialValue":{"expression":{"id":82336,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49330:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49334:6:165","memberName":"sender","nodeType":"MemberAccess","src":"49330:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"49312:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82340,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82301,"src":"49358:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49365:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"49358:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49378:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"49358:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82344,"indexExpression":{"id":82343,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"49387:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49358:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49399:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49358:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82347,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"49402:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49402:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49350:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49350:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82350,"nodeType":"ExpressionStatement","src":"49350:69:165"}]},"documentation":{"id":82294,"nodeType":"StructuredDocumentation","src":"48888:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82297,"kind":"modifierInvocation","modifierName":{"id":82296,"name":"whenNotPaused","nameLocations":["49057:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"49057:13:165"},"nodeType":"ModifierInvocation","src":"49057:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82295,"nodeType":"ParameterList","parameters":[],"src":"49037:2:165"},"returnParameters":{"id":82298,"nodeType":"ParameterList","parameters":[],"src":"49071:0:165"},"scope":82353,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79470,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"1576:7:165"},"id":79471,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79472,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79473,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79474,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79475,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79476,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79477,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79478,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79479,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79480,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79481,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79482,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79483,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82353,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,74990],"name":"Router","nameLocation":"1562:6:165","scope":82354,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74544,74547,74550,74552,74555,74558,74561,74564,74567,74570,74577,74586,74591,74598,74601,74603,74605,74607,74609,74611,74613,74615,74617,74619,74621,74623,74625,74627,74629,74631,74633,74635,74637,74639,74641,82883,82886,82889,82892,82895,82898,82901],"usedEvents":[42169,42347,43729,43734,44781,44803,74495,74500,74505,74512,74517,74522,74529,74536,74541]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"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":"call","type":"bool","internalType":"bool"}]},{"name":"events","type":"bytes[]","internalType":"bytes[]"},{"name":"ethEvents","type":"bytes[]","internalType":"bytes[]"}]},{"name":"head","type":"bytes32","internalType":"bytes32"},{"name":"lastAdvancedEthBlock","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"hasAggregatedPublicKey","type":"bool","internalType":"bool"},{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"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"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"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":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"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":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"_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":"requestCodeValidationBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationExtraFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationOnBehalf","inputs":[{"name":"_requester","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_blobHashes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v1","type":"uint8","internalType":"uint8"},{"name":"_r1","type":"bytes32","internalType":"bytes32"},{"name":"_s1","type":"bytes32","internalType":"bytes32"},{"name":"_v2","type":"uint8","internalType":"uint8"},{"name":"_r2","type":"bytes32","internalType":"bytes32"},{"name":"_s2","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationBaseFee","inputs":[{"name":"newBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationExtraFee","inputs":[{"name":"newExtraFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"},{"name":"maxValidators","type":"uint16","internalType":"uint16"},{"name":"requestCodeValidationBaseFee","type":"uint256","internalType":"uint256"},{"name":"requestCodeValidationExtraFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"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":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BatchCommitted","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"}],"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":"EBCommitted","inputs":[{"name":"ethBlockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"MBCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"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":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBlobHash","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"providedBlobHash","type":"bytes32","internalType":"bytes32"},{"name":"expectedBlobHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidBlobHashesLength","inputs":[{"name":"providedLength","type":"uint256","internalType":"uint256"},{"name":"expectedLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"requester","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTimestamp","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":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020615ced5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615c2690816100c78239608051818181612ca20152612d350152f35b6001600160401b0319166001600160401b039081175f516020615ced5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ba65f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d14613161578063188509e91461313357806328e24b3d146131055780633644e515146130ea5780633683c4d21461302d5780633bd109fa14612fde5780633d43b41814612f8a5780633f4ba83a14612f0a5780634f1ef28614612cf657806352d1902d14612c8f57806353f7fd48146122be5780635c975abb1461228f5780636c2eb35014611d20578063715018a614611cb757806371a8cf2d14611c895780637ecebe0014611c3157806382bdeaad14611b195780638456cb5914611aa657806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063ad3cb1cc14611516578063baaf020114611419578063c13911e8146113d5578063c2eb812f1461104e578063ca1e781914610ffe578063cacf66ab14610fc6578063d456fd5114610f90578063e3a6684f14610f51578063e6fabc0914610f18578063e9a28a6014610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ba65f395f51905f525442906154d7565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ba65f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f5903690600401613605565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ba65f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f198101835282613575565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e082613575565b519020610561615476565b906040519161190160f01b83526002830152602282015260c43591604260a435922061587f565b90929192615901565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e88183613575565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b8161071591949394613575565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b8049806107648386866138f0565b35146107718386866138f0565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b610984838092613575565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e88183613575565b5f610906565b6040513d88823e3d90fd5b816109ea91613575565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ba65f395f51905f525460086004610a2842846154d7565b0154910154906001600160801b038260801c92169061544b565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ba65f395f51905f525442906154d7565b0154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57610adf903690600401613605565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610f095760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ba65f395f51905f525490600182015415610efa57815415610e9e575b60038201546044600435013503610e8f5765ffffffffffff60048301541665ffffffffffff610b7e602460043501613ae8565b1610610e8157610b9360043560040183614443565b92610ba860a460043501600435600401614939565b808096925060051b0460201485151715610e6d57610bc88560051b61566b565b8695865b818810610d385750610cfe965060051b902090610bee6004356004018661497b565b610bfd60043560040187614d59565b90610c0c602460043501613ae8565b93610c1b606460043501613ada565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610c8060e782613575565b5190209283600382015565ffffffffffff610c9f602460043501613ae8565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610cf3602460043501613ae8565b1693602435916151e2565b15610d2957807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610d4c60a460043501600435600401614939565b891015610e59578860061b8101358a526019880160205260ff60408b20541660038110156107d157600103610e4a57600191602091610e0f8b8b8e868360061b86010192610d998461496e565b15610e2b5760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610dcb90613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610dfa8461496e565b1515926040519060061b8701358152a261496e565b908b60061b01358c52825360218b208186015201970196610bcc565b60409260199160061b87013583520187522060ff198154169055610dce565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610ebb610eaf606460043501613ada565b60043560040135614399565b15610eeb5765ffffffffffff610ed5602460043501613ae8565b164211610b4b57631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ba65f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ba65f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ba65f395f51905f52540154821c16604051908152f35b503461032057806003193601126103205761104a61103660046110305f516020615ba65f395f51905f525442906154d7565b01613a87565b60405191829160208352602083019061367a565b0390f35b503461032057806003193601126103205760405161106b8161353e565b6110736139d6565b815260405161108181613523565b5f8152602081015f905260208201526110986139d6565b60408201526110a5613a54565b60608201526040516110b681613523565b5f808252602082015260808201526110cc6139d6565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ba65f395f51905f5254611107613a54565b506111146009820161551e565b90611121600f820161551e565b600882015492604051936111348561355a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f840154926040519561117f8761353e565b60405161118b816134f4565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff1660408201528752604051976111c289613523565b60038701548952600487015465ffffffffffff1660208a015260208801988952604051906111ef826134f4565b60058801546001600160a01b03908116835260068901548116602084015260078901541660408084019190915289019182526060890190815261123460158901613928565b9760808a01988952601601611248906139f4565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01611349916136b6565b90606001519061027f198a8203016102e08b0152611366916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ba65f395f51905f525401600435825284522054166114176040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e5761144a903690600401613605565b905f516020615ba65f395f51905f52549061146483613885565b916114726040519384613575565b83835261147e84613885565b602084019490601f1901368637601a869201915b8181106114dd57868587604051928392602084019060208552518091526040840192915b8181106114c4575050500390f35b82518452859450602093840193909201916001016114b6565b806114f36114ee60019385886138f0565b613956565b828060a01b03165f528360205260405f205461150f8288613914565b5201611492565b50346103205780600319360112610320575061104a604051611539604082613575565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ba65f395f51905f52546001600160a01b03906002906115969042906154d7565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f19926060830190613656565b030190f35b50346103205780600319360112610320576115f86139d6565b50606061161560165f516020615ba65f395f51905f5254016139f4565b61141760405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ba65f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e6134b6565b601a5f516020615ba65f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613605565b9061396a565b6040519015158152f35b50346103205780600319360112610320575f516020615b265f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff8116810361072557611752613bba565b824915611879575f516020615ba65f395f51905f5254600181015415610efa5760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b8161184b91613575565b61072557825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600601546040516001600160a01b039091168152602090f35b503461032057806003193601126103205761193961375f565b50604061195660155f516020615ba65f395f51905f525401613928565b611417825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615b665f395f51905f52541580611a90575b15611a53576119f7906119b661421f565b906119bf6142ec565b906020611a05604051936119d38386613575565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a3c57505050500390f35b835185528695509381019392810192600101611a2d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615c065f395f51905f5254156119a5565b5034610320578060031936011261032057611abf613b87565b611ac7613bba565b600160ff195f516020615bc65f395f51905f525416175f516020615bc65f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e57611b4a903690600401613605565b905f516020615ba65f395f51905f525490611b6483613885565b91611b726040519384613575565b838352611b7e84613885565b602084019490601f19013686376019869201915b818110611be757868587604051928392602084019060208552518091526040840192915b818110611bc4575050500390f35b9193509160208082611bd96001948851613635565b019401910191849392611bb6565b611bf28183866138f0565b3587528260205260ff604088205416611c0b8287613914565b6003821015611c1d5752600101611b92565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611c596134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ba65f395f51905f52540154604051908152f35b5034610320578060031936011261032057611cd0613b87565b5f516020615b265f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611d39613b87565b5f516020615be65f395f51905f525460ff8160401c1690811561227a575b5061226b575f516020615be65f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615b265f395f51905f5254611db1906001600160a01b0316611da96154f3565b6103816154f3565b611db9613795565b90611dc26137c2565b90611dcb6154f3565b611dd36154f3565b82516001600160401b03811161216e57611dfa5f516020615b065f395f51905f52546141e7565b601f8111612207575b506020601f821160011461218d57829394829392612182575b50508160011b915f199060031b1c1916175f516020615b065f395f51905f52555b81516001600160401b03811161216e57611e645f516020615b465f395f51905f52546141e7565b601f8111612101575b50602092601f82116001146120885792829382939261207d575b50508160011b915f199060031b1c1916175f516020615b465f395f51905f52555b805f516020615b665f395f51905f5255805f516020615c065f395f51905f52555f516020615ba65f395f51905f5254611edf61414f565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611f2d81613523565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611f5842846154d7565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611fa991849161204e575b50613839565b90816103e8026103e88104830361203a57601e820155816101f402916101f483040361202657601f015560ff60401b195f516020615be65f395f51905f5254165f516020615be65f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b612070915060203d602011612076575b6120688183613575565b810190613820565b5f611fa3565b503d61205e565b015190505f80611e87565b601f198216935f516020615b465f395f51905f52845280842091845b8681106120e957508360019596106120d1575b505050811b015f516020615b465f395f51905f5255611ea8565b01515f1960f88460031b161c191690555f80806120b7565b919260206001819286850151815501940192016120a4565b81811115611e6d575f516020615b465f395f51905f528352612160907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612166575b601f82910160051c0391016141cc565b5f611e6d565b859150612150565b634e487b7160e01b82526041600452602482fd5b015190505f80611e1c565b5f516020615b065f395f51905f52835280832090601f198316845b8181106121ef575095836001959697106121d7575b505050811b015f516020615b065f395f51905f5255611e3d565b01515f1960f88460031b161c191690555f80806121bd565b9192602060018192868b0151815501940192016121a8565b81811115611e03575f516020615b065f395f51905f528352612265907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061216657601f82910160051c0391016141cc565b5f611e03565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d57565b5034610320578060031936011261032057602060ff5f516020615bc65f395f51905f5254166040519015158152f35b503461032057610160366003190112610320576122d96134b6565b906024356001600160a01b0381169081900361098e576122f761348a565b926123006134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757612374903690600401613605565b9590935f516020615be65f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612c87575b6001149081612c7d575b159081612c74575b50612c65576123f6908a60016001600160401b03195f516020615be65f395f51905f525416175f516020615be65f395f51905f5255612c35575b611da96154f3565b6123fe6154f3565b612406613795565b61240e6137c2565b906124176154f3565b61241f6154f3565b8051906001600160401b038211612c215781908b61244a5f516020615b065f395f51905f52546141e7565b601f8111612bd0575b5050602090601f8311600114612b54578c92612b49575b50508160011b915f199060031b1c1916175f516020615b065f395f51905f52555b8051906001600160401b038211612b355781906124b55f516020615b465f395f51905f52546141e7565b601f8111612ac6575b50602090601f8311600114612a4a578b92612a3f575b50508160011b915f199060031b1c1916175f516020615b465f395f51905f52555b875f516020615b665f395f51905f5255875f516020615c065f395f51905f525561251d6154f3565b6125256154f3565b4215612a30578115612a215781811115612a1257600a61254583836137e1565b04831015612a03576040809a815161255d8382613575565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612590613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ba65f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16125e561414f565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061262f826134f4565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d01556126a361375f565b5089516126af81613523565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906126f4816134f4565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa9081156129f9579061275491869161204e5750613839565b806103e8026103e881048203610e6d57601e8a0155806101f402906101f48204036129e557906127b491601f8a01556127ac8751986127928a613523565b60e4358a5260208a019461010435865260243692016135b1565b93369161389c565b958051825170014551231950b75fc4402da1732fc9bebe19821091826129d4575b5050156129c55751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156129b85752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b825481101561287d5782845260208085208201546001600160a01b03165f90815290869052869020805460ff19169055600101612845565b509195949094865b83518110156128c5576001906001600160a01b036128a38287613914565b5116828060a01b03165f5285602052865f208260ff1982541617905501612885565b50925092938151916001600160401b0383116129a457600160401b83116129a4576020908254848455808510612989575b500190865260208620865b83811061296c5750505050600e4291015561291a575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615be65f395f51905f5254165f516020615be65f395f51905f52555160018152a180f35b82516001600160a01b031681830155602090920191600101612901565b61299e90848a528580858c20019103906141cc565b5f6128f6565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6129de9250615a84565b5f806127d5565b634e487b7160e01b85526011600452602485fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f806124d4565b5f516020615b465f395f51905f528c52818c209250601f1984168c5b818110612aae5750908460019594939210612a96575b505050811b015f516020615b465f395f51905f52556124f5565b01515f1960f88460031b161c191690555f8080612a7c565b92936020600181928786015181550195019301612a66565b828111156124be575f516020615b465f395f51905f528c52612b27907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612b2d575b50601f82910160051c0391016141cc565b5f6124be565b91508e612b16565b634e487b7160e01b8a52604160045260248afd5b015190505f8061246a565b5f516020615b065f395f51905f528d52818d209250601f1984168d5b818110612bb85750908460019594939210612ba0575b505050811b015f516020615b065f395f51905f525561248b565b01515f1960f88460031b161c191690555f8080612b86565b92936020600181928786015181550195019301612b70565b83811115612453575f516020615b065f395f51905f52612c1292528d6020812091601f860160051c9160208710612c195750601f82910160051c0391016141cc565b8b5f612453565b91508f612b16565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615be65f395f51905f525416175f516020615be65f395f51905f52556123ee565b63f92ee8a960e01b8952600489fd5b9050155f6123b4565b303b1591506123ac565b8b91506123a2565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612ce75760206040515f516020615b865f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612d0b6134b6565b906024356001600160401b03811161098e57612d2b9036906004016135e7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612ee8575b50612ed957612d6d613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ea1575b50612db257634c9c8ce360e01b84526004839052602484fd5b9091845f516020615b865f395f51905f528103612e8f5750813b15612e7d575f516020615b865f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612e635780836020612e5795519101845af43d15612e5b573d91612e3b83613596565b92612e496040519485613575565b83523d85602085013e615aa7565b5080f35b606091615aa7565b50505034612e6e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ed1575b81612ebd60209383613575565b81010312612ecd5751945f612d99565b5f80fd5b3d9150612eb0565b63703e46dd60e11b8252600482fd5b5f516020615b865f395f51905f52546001600160a01b0316141590505f612d60565b5034610320578060031936011261032057612f23613b87565b5f516020615bc65f395f51905f525460ff811615612f7b5760ff19165f516020615bc65f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612fa46134b6565b612fac613b87565b5f516020615ba65f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612ff761375f565b50604061301b6130165f516020615ba65f395f51905f525442906154d7565b613777565b60208251918051835201516020820152f35b50346103205760603660031901126103205761304761348a565b61304f613bba565b61305d602435600435614057565b506001600160a01b03908116919081166130e55750335b5f516020615ba65f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b613074565b50346103205780600319360112610320576020610a42615476565b5034610320578060031936011261032057602060015f516020615ba65f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ba65f395f51905f52540154604051908152f35b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ba65f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ba65f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e88183613575565b5f613282565b6040513d87823e3d90fd5b8161335791613575565b61072557825f61323a565b34612ecd576080366003190112612ecd5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612ecd57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f61341691613575565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612ecd576020366003190112612ecd57613446613b87565b600435601f5f516020615ba65f395f51905f525401555f80f35b34612ecd575f366003190112612ecd57602090601c5f516020615ba65f395f51905f525401548152f35b604435906001600160a01b0382168203612ecd57565b606435906001600160a01b0382168203612ecd57565b600435906001600160a01b0382168203612ecd57565b35906001600160a01b0382168203612ecd57565b35906001600160801b0382168203612ecd57565b606081019081106001600160401b0382111761350f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761350f57604052565b61016081019081106001600160401b0382111761350f57604052565b608081019081106001600160401b0382111761350f57604052565b90601f801991011681019081106001600160401b0382111761350f57604052565b6001600160401b03811161350f57601f01601f191660200190565b9291926135bd82613596565b916135cb6040519384613575565b829481845281830111612ecd578281602093845f960137010152565b9080601f83011215612ecd57816020613602933591016135b1565b90565b9181601f84011215612ecd578235916001600160401b038311612ecd576020808501948460051b010111612ecd57565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612ecd57518015158103612ecd5790565b6040519061376c82613523565b5f6020838281520152565b9060405161378481613523565b602060018294805484520154910152565b604051906137a4604083613575565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137d1604083613575565b60018252603160f81b6020830152565b919082039182116137ee57565b634e487b7160e01b5f52601160045260245ffd5b811561380c570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612ecd575160ff81168103612ecd5790565b60ff16604d81116137ee57600a0a90565b818102929181159184041417156137ee57565b9190826040910312612ecd5760405161387581613523565b6020808294803584520135910152565b6001600160401b03811161350f5760051b60200190565b9291906138a881613885565b936138b66040519586613575565b602085838152019160051b8101928311612ecd57905b8282106138d857505050565b602080916138e5846134cc565b8152019101906138cc565b91908110156139005760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139005760209160051b010190565b9060405161393581613523565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612ecd5790565b6139835f516020615ba65f395f51905f525442906154d7565b600301905f5b8381106139995750505050600190565b6139a76114ee8286856138f0565b6001600160a01b03165f9081526020849052604090205460ff16156139ce57600101613989565b505050505f90565b604051906139e3826134f4565b5f6040838281528260208201520152565b90604051613a01816134f4565b60406002829480548452600181015460208501520154910152565b60405190613a298261355a565b5f606083604051613a3981613523565b83815283602082015281528260208201528160408201520152565b60405190613a618261355a565b815f81525f6020820152613a73613a1c565b60408201526060613a82613a1c565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ab8575050613ab692500383613575565b565b84546001600160a01b0316835260019485019487945060209093019201613aa1565b3560ff81168103612ecd5790565b3565ffffffffffff81168103612ecd5790565b5f1981146137ee5760010190565b919082018092116137ee57565b6001600160a01b03168015613b74575f516020615b265f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615b265f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615bc65f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ba65f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612ecd576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612ecd5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ba65f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612ecd57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612ecd5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b6141576139d6565b5063ffffffff43116141b45765ffffffffffff421161419c5760405161417c816134f4565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b8281106141da57505050565b5f828201556001016141ce565b90600182811c92168015614215575b602083101461420157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916141f6565b604051905f825f516020615b065f395f51905f52549161423e836141e7565b80835292600181169081156142cd5750600114614262575b613ab692500383613575565b505f516020615b065f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142b1575050906020613ab692820101614256565b6020919350806001915483858901015201910190918492614299565b60209250613ab694915060ff191682840152151560051b820101614256565b604051905f825f516020615b465f395f51905f52549161430b836141e7565b80835292600181169081156142cd575060011461432e57613ab692500383613575565b505f516020615b465f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061437d575050906020613ab692820101614256565b6020919350806001915483858901015201910190918492614365565b435f19810193929084116137ee5760ff164381106143e957505f925b838110156143c5575b505f925050565b80408281036143d75750600193505050565b156143e4575f19016143b5565b6143be565b6143f390436137e1565b926143b5565b903590601e1981360301821215612ecd57018035906001600160401b038211612ecd57602001918160051b36038313612ecd57565b903590605e1981360301821215612ecd570190565b9060808101600161445482846143f9565b90501161492a5761446581836143f9565b90501561490357614475916143f9565b1561390057806144849161442e565b9161448f83806143f9565b9190928260051b93838504602014841517156137ee576144b18596949561566b565b925f945f97601a61013e19853603019501965b888a1015614866578960051b85013586811215612ecd5785016144e681613956565b6001600160a01b03165f90815260208a9052604090205415610064575f60808201916001600160801b0361451984615573565b16151580614853575b614842575b6001600160a01b0361453882613956565b60405163f76207bb60e01b81526020600482015294911691906101648501906001600160801b03906145b7906001600160a01b03614575866134cc565b1660248901526020850135604489015261459160408601614d4c565b151560648901526001600160a01b036145ac606087016134cc565b1660848901526134e0565b1660a48601526145c960a08301614d4c565b151560c486015260c0820135601e1983360301811215612ecd578201602081359101916001600160401b038211612ecd576060820236038313612ecd5761014060e4880152819052859392916101848501915f905b8082106147f05750505061463560e0830183615587565b602319868403016101048701528083526020600582901b840181019390810191905f908460de1936829003015b8484106147235750505050505050916001600160801b03846146c9846146b66146aa60209a98614697610100879a0185615587565b878303602319016101248901529061560c565b91610120810190615587565b848303602319016101448601529061560c565b039316905af190811561341c575f916146f1575b50816020916001938a0152019901986144c4565b90506020813d821161471b575b8161470b60209383613575565b81010312612ecd575160016146dd565b3d91506146fe565b91939597989950919395601f19848203018752873582811215612ecd578301803582526001600160a01b0361475a602083016134cc565b16602083015261478161477060408301836155bb565b60e0604086015260e08501916155ec565b906001600160801b03614796606083016134e0565b1660608401526080810135608084015260a08101359163ffffffff60e01b8316809303612ecd578360c06147d78160209695879660a060019a015201614d4c565b1515910152990197019401918b99989796959391614662565b91939495509160608060019286358152838060a01b03614812602089016134cc565b1660208201526001600160801b0361482c604089016134e0565b166040820152019401920187959493929161461e565b905061484d82615573565b90614527565b5061486060a0820161496e565b15614522565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a10135806148d4575b604051916020830193845260408301526060820152606081526148ce608082613575565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a16148aa565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612ecd57018035906001600160401b038211612ecd57602001918160061b36038313612ecd57565b358015158103612ecd5790565b60c08201600161498b82856143f9565b905011614d0b5761499c81846143f9565b905015614903576149ad90836143f9565b1561390057803590607e1981360301821215612ecd570191606083019060206149d583613ae8565b91019065ffffffffffff806149e984613ae8565b1691161015614cfc576149fb82613ae8565b65ffffffffffff80600286015460201c16911610614ced57614a4165ffffffffffff614a3a614a3482614a2d87613ae8565b1687615690565b93613ae8565b1684615690565b1115614cde576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a8783614a7f898961442e565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614cbf575b5015614cb0575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614c78575b5090614b0c9161442e565b91614b1682613ae8565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612ecd578101602081359101936001600160401b038211612ecd578160061b36038513612ecd5760606044890152819052869360c485019392915f5b818110614c4057505050836020959365ffffffffffff829484895f9601356064860152614baf604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f92614c0a575b50614bd790613ae8565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526148ce606682613575565b9091506020813d602011614c38575b81614c2660209383613575565b81010312612ecd575190614bd7614bcd565b3d9150614c19565b919550919293604080600192838060a01b03614c5b8a6134cc565b168152602089013560208201520196019101918895949392614b79565b919094506020823d602011614ca8575b81614c9560209383613575565b81010312612ecd57905193614b0c614b01565b3d9150614c88565b6367b9145160e01b5f5260045ffd5b614cd8915060203d6020116106f6576106e88183613575565b5f614ab4565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612ecd57018035906001600160401b038211612ecd57602001918136038313612ecd57565b35908115158203612ecd57565b9060e081016001614d6a82846143f9565b9050116151d357614d7b81836143f9565b90501561490357614d8b916143f9565b156139005780359060be1981360301821215612ecd570160808101614db081836143f9565b9050156151c45765ffffffffffff600284015460201c1691614dd283426137e1565b614de160168601548092613802565b9360a083013594600181018091116137ee5785036151b557614e0685614e0c9361384a565b90613b09565b93614e1b6017820154866137e1565b42106151a657614e2a906156b8565b916005830193428554101561519757614e428361496e565b92602081019060608101936127ac614e7e614e5d8785614d1a565b9190614e6985876143f9565b949091614e76368a61385d565b9436916135b1565b976150de575b50505f989798976003600489019801985b8854811015614ecc575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614e95565b5090919293949596985f5b8851811015614f18576001906001600160a01b03614ef5828c613914565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614ed7565b50929598909396919497508151916001600160401b03831161350f57600160401b831161350f5760209082548484558085106150c3575b5001905f5260205f205f5b8381106150a65750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612ecd576040519260a08401908482106001600160401b0383111761350f57614fce91604052614fc584614d4c565b8552369061385d565b9460208401958652356001600160401b038111612ecd57614ff290369084016135e7565b604084015235906001600160401b038211612ecd570136601f82011215612ecd5761502490369060208135910161389c565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110615084575050508152038082526148ce9060200182613575565b82516001600160a01b0316855286955060209485019490920191600101615067565b82516001600160a01b031681830155602090920191600101614f5a565b6150d890845f528580855f20019103906141cc565b5f614f4f565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182615186575b5050156151775751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561516a57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614e84565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6151909250615a84565b5f80615104565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c166152014284615690565b6152196152136016860154809361384a565b83613b09565b918284108080615435575b15615403575083106153f55761523a9083613b09565b106153e65761524a905b826154d7565b94601960f81b5f523060601b60025260165260365f2093600281101561364257806152db575050600181036152cc57156139005761528b8161529292614d1a565b36916135b1565b9160608351036152bd57826020613602940151606060408301519201519260018154910154906156d3565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146152ee5750505050505f90565b61531390600860048796970154910154906001600160801b038260801c92169061544b565b925f9260035f9201915b868110156153db5761534361058861533d61528b8460051b860186614d1a565b86615a4a565b6001600160a01b0381165f9081526020859052604090205460ff1661536e575b506001905b0161531d565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c156153b35750600190615368565b9460016153c192965d613afb565b938585146153cf575f615363565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116154265761524a9261541e575b50615244565b90505f615418565b6347860b9760e01b5f5260045ffd5b50615444601887015485613b09565b4210615224565b6001600160801b038092160291166154638183613802565b91811561380c5706156136025760010190565b61547e615961565b6154866159b8565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526148ce60c082613575565b906154e290826159ea565b156154ed57600f0190565b60090190565b60ff5f516020615be65f395f51905f525460401c161561550f57565b631afcd79f60e31b5f5260045ffd5b615526613a1c565b5060028101546005820154604051929091615566916004916001600160a01b03166155508661355a565b61555982613777565b8652602086015201613a87565b6040830152606082015290565b356001600160801b0381168103612ecd5790565b9035601e1982360301811215612ecd5701602081359101916001600160401b038211612ecd578160051b36038313612ecd57565b9035601e1982360301811215612ecd5701602081359101916001600160401b038211612ecd578136038313612ecd57565b908060209392818452848401375f828201840152601f01601f1916010190565b90602083828152019260208260051b82010193835f925b8484106156335750505050505090565b90919293949560208061565b600193601f198682030188526156558b886155bb565b906155ec565b9801940194019294939190615623565b6040519190601f01601f191682016001600160401b03811183821017612ecd57604052565b60166156af6136029365ffffffffffff600285015460201c16906137e1565b91015490613802565b6156c242826159ea565b156156cd5760090190565b600f0190565b92939194906156e28587615a84565b156158755782156158755770014551231950b75fc4402da1732fc9bebe19831015615875576001169061010e6157178161566b565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156153db5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158f6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b038116156158ec57905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156136425780615913575050565b6001810361592a5763f645eedf60e01b5f5260045ffd5b60028103615945575063fce698f760e01b5f5260045260245ffd5b60031461594f5750565b6335e2f38360e21b5f5260045260245ffd5b61596961421f565b8051908115615979576020012090565b50505f516020615b665f395f51905f525480156159935790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159c06142ec565b80519081156159d0576020012090565b50505f516020615c065f395f51905f525480156159935790565b906014600e830154920154808314615a3b57818184109311918215911115918190615a34575b15615a255782615a1f57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615a10565b63f26224af60e01b5f5260045ffd5b8151919060418303615a7a57615a739250602082015190606060408401519301515f1a9061587f565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b90615acb5750805115615abc57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615afc575b615adc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ad456fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47875:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;7983:34:30;7979:146;;-1:-1:-1;1553:47875:165;;;;;;;;1052:13:60;1553:47875:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;8085:29:30;;1553:47875:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:47875:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ba65f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d14613161578063188509e91461313357806328e24b3d146131055780633644e515146130ea5780633683c4d21461302d5780633bd109fa14612fde5780633d43b41814612f8a5780633f4ba83a14612f0a5780634f1ef28614612cf657806352d1902d14612c8f57806353f7fd48146122be5780635c975abb1461228f5780636c2eb35014611d20578063715018a614611cb757806371a8cf2d14611c895780637ecebe0014611c3157806382bdeaad14611b195780638456cb5914611aa657806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063ad3cb1cc14611516578063baaf020114611419578063c13911e8146113d5578063c2eb812f1461104e578063ca1e781914610ffe578063cacf66ab14610fc6578063d456fd5114610f90578063e3a6684f14610f51578063e6fabc0914610f18578063e9a28a6014610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ba65f395f51905f525442906154d7565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ba65f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f5903690600401613605565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ba65f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f198101835282613575565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e082613575565b519020610561615476565b906040519161190160f01b83526002830152602282015260c43591604260a435922061587f565b90929192615901565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e88183613575565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b8161071591949394613575565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b8049806107648386866138f0565b35146107718386866138f0565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b610984838092613575565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e88183613575565b5f610906565b6040513d88823e3d90fd5b816109ea91613575565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ba65f395f51905f525460086004610a2842846154d7565b0154910154906001600160801b038260801c92169061544b565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ba65f395f51905f525442906154d7565b0154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57610adf903690600401613605565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610f095760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ba65f395f51905f525490600182015415610efa57815415610e9e575b60038201546044600435013503610e8f5765ffffffffffff60048301541665ffffffffffff610b7e602460043501613ae8565b1610610e8157610b9360043560040183614443565b92610ba860a460043501600435600401614939565b808096925060051b0460201485151715610e6d57610bc88560051b61566b565b8695865b818810610d385750610cfe965060051b902090610bee6004356004018661497b565b610bfd60043560040187614d59565b90610c0c602460043501613ae8565b93610c1b606460043501613ada565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610c8060e782613575565b5190209283600382015565ffffffffffff610c9f602460043501613ae8565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610cf3602460043501613ae8565b1693602435916151e2565b15610d2957807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610d4c60a460043501600435600401614939565b891015610e59578860061b8101358a526019880160205260ff60408b20541660038110156107d157600103610e4a57600191602091610e0f8b8b8e868360061b86010192610d998461496e565b15610e2b5760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610dcb90613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610dfa8461496e565b1515926040519060061b8701358152a261496e565b908b60061b01358c52825360218b208186015201970196610bcc565b60409260199160061b87013583520187522060ff198154169055610dce565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610ebb610eaf606460043501613ada565b60043560040135614399565b15610eeb5765ffffffffffff610ed5602460043501613ae8565b164211610b4b57631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ba65f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ba65f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ba65f395f51905f52540154821c16604051908152f35b503461032057806003193601126103205761104a61103660046110305f516020615ba65f395f51905f525442906154d7565b01613a87565b60405191829160208352602083019061367a565b0390f35b503461032057806003193601126103205760405161106b8161353e565b6110736139d6565b815260405161108181613523565b5f8152602081015f905260208201526110986139d6565b60408201526110a5613a54565b60608201526040516110b681613523565b5f808252602082015260808201526110cc6139d6565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ba65f395f51905f5254611107613a54565b506111146009820161551e565b90611121600f820161551e565b600882015492604051936111348561355a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f840154926040519561117f8761353e565b60405161118b816134f4565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff1660408201528752604051976111c289613523565b60038701548952600487015465ffffffffffff1660208a015260208801988952604051906111ef826134f4565b60058801546001600160a01b03908116835260068901548116602084015260078901541660408084019190915289019182526060890190815261123460158901613928565b9760808a01988952601601611248906139f4565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01611349916136b6565b90606001519061027f198a8203016102e08b0152611366916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ba65f395f51905f525401600435825284522054166114176040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e5761144a903690600401613605565b905f516020615ba65f395f51905f52549061146483613885565b916114726040519384613575565b83835261147e84613885565b602084019490601f1901368637601a869201915b8181106114dd57868587604051928392602084019060208552518091526040840192915b8181106114c4575050500390f35b82518452859450602093840193909201916001016114b6565b806114f36114ee60019385886138f0565b613956565b828060a01b03165f528360205260405f205461150f8288613914565b5201611492565b50346103205780600319360112610320575061104a604051611539604082613575565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ba65f395f51905f52546001600160a01b03906002906115969042906154d7565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f19926060830190613656565b030190f35b50346103205780600319360112610320576115f86139d6565b50606061161560165f516020615ba65f395f51905f5254016139f4565b61141760405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ba65f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e6134b6565b601a5f516020615ba65f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613605565b9061396a565b6040519015158152f35b50346103205780600319360112610320575f516020615b265f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff8116810361072557611752613bba565b824915611879575f516020615ba65f395f51905f5254600181015415610efa5760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b8161184b91613575565b61072557825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ba65f395f51905f5254600601546040516001600160a01b039091168152602090f35b503461032057806003193601126103205761193961375f565b50604061195660155f516020615ba65f395f51905f525401613928565b611417825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615b665f395f51905f52541580611a90575b15611a53576119f7906119b661421f565b906119bf6142ec565b906020611a05604051936119d38386613575565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a3c57505050500390f35b835185528695509381019392810192600101611a2d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615c065f395f51905f5254156119a5565b5034610320578060031936011261032057611abf613b87565b611ac7613bba565b600160ff195f516020615bc65f395f51905f525416175f516020615bc65f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e57611b4a903690600401613605565b905f516020615ba65f395f51905f525490611b6483613885565b91611b726040519384613575565b838352611b7e84613885565b602084019490601f19013686376019869201915b818110611be757868587604051928392602084019060208552518091526040840192915b818110611bc4575050500390f35b9193509160208082611bd96001948851613635565b019401910191849392611bb6565b611bf28183866138f0565b3587528260205260ff604088205416611c0b8287613914565b6003821015611c1d5752600101611b92565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611c596134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ba65f395f51905f52540154604051908152f35b5034610320578060031936011261032057611cd0613b87565b5f516020615b265f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611d39613b87565b5f516020615be65f395f51905f525460ff8160401c1690811561227a575b5061226b575f516020615be65f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615b265f395f51905f5254611db1906001600160a01b0316611da96154f3565b6103816154f3565b611db9613795565b90611dc26137c2565b90611dcb6154f3565b611dd36154f3565b82516001600160401b03811161216e57611dfa5f516020615b065f395f51905f52546141e7565b601f8111612207575b506020601f821160011461218d57829394829392612182575b50508160011b915f199060031b1c1916175f516020615b065f395f51905f52555b81516001600160401b03811161216e57611e645f516020615b465f395f51905f52546141e7565b601f8111612101575b50602092601f82116001146120885792829382939261207d575b50508160011b915f199060031b1c1916175f516020615b465f395f51905f52555b805f516020615b665f395f51905f5255805f516020615c065f395f51905f52555f516020615ba65f395f51905f5254611edf61414f565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611f2d81613523565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611f5842846154d7565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611fa991849161204e575b50613839565b90816103e8026103e88104830361203a57601e820155816101f402916101f483040361202657601f015560ff60401b195f516020615be65f395f51905f5254165f516020615be65f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b612070915060203d602011612076575b6120688183613575565b810190613820565b5f611fa3565b503d61205e565b015190505f80611e87565b601f198216935f516020615b465f395f51905f52845280842091845b8681106120e957508360019596106120d1575b505050811b015f516020615b465f395f51905f5255611ea8565b01515f1960f88460031b161c191690555f80806120b7565b919260206001819286850151815501940192016120a4565b81811115611e6d575f516020615b465f395f51905f528352612160907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510612166575b601f82910160051c0391016141cc565b5f611e6d565b859150612150565b634e487b7160e01b82526041600452602482fd5b015190505f80611e1c565b5f516020615b065f395f51905f52835280832090601f198316845b8181106121ef575095836001959697106121d7575b505050811b015f516020615b065f395f51905f5255611e3d565b01515f1960f88460031b161c191690555f80806121bd565b9192602060018192868b0151815501940192016121a8565b81811115611e03575f516020615b065f395f51905f528352612265907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c906020851061216657601f82910160051c0391016141cc565b5f611e03565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611d57565b5034610320578060031936011261032057602060ff5f516020615bc65f395f51905f5254166040519015158152f35b503461032057610160366003190112610320576122d96134b6565b906024356001600160a01b0381169081900361098e576122f761348a565b926123006134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757612374903690600401613605565b9590935f516020615be65f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612c87575b6001149081612c7d575b159081612c74575b50612c65576123f6908a60016001600160401b03195f516020615be65f395f51905f525416175f516020615be65f395f51905f5255612c35575b611da96154f3565b6123fe6154f3565b612406613795565b61240e6137c2565b906124176154f3565b61241f6154f3565b8051906001600160401b038211612c215781908b61244a5f516020615b065f395f51905f52546141e7565b601f8111612bd0575b5050602090601f8311600114612b54578c92612b49575b50508160011b915f199060031b1c1916175f516020615b065f395f51905f52555b8051906001600160401b038211612b355781906124b55f516020615b465f395f51905f52546141e7565b601f8111612ac6575b50602090601f8311600114612a4a578b92612a3f575b50508160011b915f199060031b1c1916175f516020615b465f395f51905f52555b875f516020615b665f395f51905f5255875f516020615c065f395f51905f525561251d6154f3565b6125256154f3565b4215612a30578115612a215781811115612a1257600a61254583836137e1565b04831015612a03576040809a815161255d8382613575565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612590613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ba65f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16125e561414f565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061262f826134f4565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d01556126a361375f565b5089516126af81613523565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906126f4816134f4565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa9081156129f9579061275491869161204e5750613839565b806103e8026103e881048203610e6d57601e8a0155806101f402906101f48204036129e557906127b491601f8a01556127ac8751986127928a613523565b60e4358a5260208a019461010435865260243692016135b1565b93369161389c565b958051825170014551231950b75fc4402da1732fc9bebe19821091826129d4575b5050156129c55751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156129b85752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b825481101561287d5782845260208085208201546001600160a01b03165f90815290869052869020805460ff19169055600101612845565b509195949094865b83518110156128c5576001906001600160a01b036128a38287613914565b5116828060a01b03165f5285602052865f208260ff1982541617905501612885565b50925092938151916001600160401b0383116129a457600160401b83116129a4576020908254848455808510612989575b500190865260208620865b83811061296c5750505050600e4291015561291a575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615be65f395f51905f5254165f516020615be65f395f51905f52555160018152a180f35b82516001600160a01b031681830155602090920191600101612901565b61299e90848a528580858c20019103906141cc565b5f6128f6565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6129de9250615a84565b5f806127d5565b634e487b7160e01b85526011600452602485fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f806124d4565b5f516020615b465f395f51905f528c52818c209250601f1984168c5b818110612aae5750908460019594939210612a96575b505050811b015f516020615b465f395f51905f52556124f5565b01515f1960f88460031b161c191690555f8080612a7c565b92936020600181928786015181550195019301612a66565b828111156124be575f516020615b465f395f51905f528c52612b27907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612b2d575b50601f82910160051c0391016141cc565b5f6124be565b91508e612b16565b634e487b7160e01b8a52604160045260248afd5b015190505f8061246a565b5f516020615b065f395f51905f528d52818d209250601f1984168d5b818110612bb85750908460019594939210612ba0575b505050811b015f516020615b065f395f51905f525561248b565b01515f1960f88460031b161c191690555f8080612b86565b92936020600181928786015181550195019301612b70565b83811115612453575f516020615b065f395f51905f52612c1292528d6020812091601f860160051c9160208710612c195750601f82910160051c0391016141cc565b8b5f612453565b91508f612b16565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615be65f395f51905f525416175f516020615be65f395f51905f52556123ee565b63f92ee8a960e01b8952600489fd5b9050155f6123b4565b303b1591506123ac565b8b91506123a2565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612ce75760206040515f516020615b865f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612d0b6134b6565b906024356001600160401b03811161098e57612d2b9036906004016135e7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612ee8575b50612ed957612d6d613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ea1575b50612db257634c9c8ce360e01b84526004839052602484fd5b9091845f516020615b865f395f51905f528103612e8f5750813b15612e7d575f516020615b865f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612e635780836020612e5795519101845af43d15612e5b573d91612e3b83613596565b92612e496040519485613575565b83523d85602085013e615aa7565b5080f35b606091615aa7565b50505034612e6e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ed1575b81612ebd60209383613575565b81010312612ecd5751945f612d99565b5f80fd5b3d9150612eb0565b63703e46dd60e11b8252600482fd5b5f516020615b865f395f51905f52546001600160a01b0316141590505f612d60565b5034610320578060031936011261032057612f23613b87565b5f516020615bc65f395f51905f525460ff811615612f7b5760ff19165f516020615bc65f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612fa46134b6565b612fac613b87565b5f516020615ba65f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612ff761375f565b50604061301b6130165f516020615ba65f395f51905f525442906154d7565b613777565b60208251918051835201516020820152f35b50346103205760603660031901126103205761304761348a565b61304f613bba565b61305d602435600435614057565b506001600160a01b03908116919081166130e55750335b5f516020615ba65f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b613074565b50346103205780600319360112610320576020610a42615476565b5034610320578060031936011261032057602060015f516020615ba65f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ba65f395f51905f52540154604051908152f35b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ba65f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ba65f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e88183613575565b5f613282565b6040513d87823e3d90fd5b8161335791613575565b61072557825f61323a565b34612ecd576080366003190112612ecd5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612ecd57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f61341691613575565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612ecd576020366003190112612ecd57613446613b87565b600435601f5f516020615ba65f395f51905f525401555f80f35b34612ecd575f366003190112612ecd57602090601c5f516020615ba65f395f51905f525401548152f35b604435906001600160a01b0382168203612ecd57565b606435906001600160a01b0382168203612ecd57565b600435906001600160a01b0382168203612ecd57565b35906001600160a01b0382168203612ecd57565b35906001600160801b0382168203612ecd57565b606081019081106001600160401b0382111761350f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761350f57604052565b61016081019081106001600160401b0382111761350f57604052565b608081019081106001600160401b0382111761350f57604052565b90601f801991011681019081106001600160401b0382111761350f57604052565b6001600160401b03811161350f57601f01601f191660200190565b9291926135bd82613596565b916135cb6040519384613575565b829481845281830111612ecd578281602093845f960137010152565b9080601f83011215612ecd57816020613602933591016135b1565b90565b9181601f84011215612ecd578235916001600160401b038311612ecd576020808501948460051b010111612ecd57565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612ecd57518015158103612ecd5790565b6040519061376c82613523565b5f6020838281520152565b9060405161378481613523565b602060018294805484520154910152565b604051906137a4604083613575565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137d1604083613575565b60018252603160f81b6020830152565b919082039182116137ee57565b634e487b7160e01b5f52601160045260245ffd5b811561380c570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612ecd575160ff81168103612ecd5790565b60ff16604d81116137ee57600a0a90565b818102929181159184041417156137ee57565b9190826040910312612ecd5760405161387581613523565b6020808294803584520135910152565b6001600160401b03811161350f5760051b60200190565b9291906138a881613885565b936138b66040519586613575565b602085838152019160051b8101928311612ecd57905b8282106138d857505050565b602080916138e5846134cc565b8152019101906138cc565b91908110156139005760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139005760209160051b010190565b9060405161393581613523565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612ecd5790565b6139835f516020615ba65f395f51905f525442906154d7565b600301905f5b8381106139995750505050600190565b6139a76114ee8286856138f0565b6001600160a01b03165f9081526020849052604090205460ff16156139ce57600101613989565b505050505f90565b604051906139e3826134f4565b5f6040838281528260208201520152565b90604051613a01816134f4565b60406002829480548452600181015460208501520154910152565b60405190613a298261355a565b5f606083604051613a3981613523565b83815283602082015281528260208201528160408201520152565b60405190613a618261355a565b815f81525f6020820152613a73613a1c565b60408201526060613a82613a1c565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ab8575050613ab692500383613575565b565b84546001600160a01b0316835260019485019487945060209093019201613aa1565b3560ff81168103612ecd5790565b3565ffffffffffff81168103612ecd5790565b5f1981146137ee5760010190565b919082018092116137ee57565b6001600160a01b03168015613b74575f516020615b265f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615b265f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615bc65f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ba65f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612ecd576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612ecd5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ba65f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612ecd57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612ecd5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b6141576139d6565b5063ffffffff43116141b45765ffffffffffff421161419c5760405161417c816134f4565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b8281106141da57505050565b5f828201556001016141ce565b90600182811c92168015614215575b602083101461420157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916141f6565b604051905f825f516020615b065f395f51905f52549161423e836141e7565b80835292600181169081156142cd5750600114614262575b613ab692500383613575565b505f516020615b065f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142b1575050906020613ab692820101614256565b6020919350806001915483858901015201910190918492614299565b60209250613ab694915060ff191682840152151560051b820101614256565b604051905f825f516020615b465f395f51905f52549161430b836141e7565b80835292600181169081156142cd575060011461432e57613ab692500383613575565b505f516020615b465f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061437d575050906020613ab692820101614256565b6020919350806001915483858901015201910190918492614365565b435f19810193929084116137ee5760ff164381106143e957505f925b838110156143c5575b505f925050565b80408281036143d75750600193505050565b156143e4575f19016143b5565b6143be565b6143f390436137e1565b926143b5565b903590601e1981360301821215612ecd57018035906001600160401b038211612ecd57602001918160051b36038313612ecd57565b903590605e1981360301821215612ecd570190565b9060808101600161445482846143f9565b90501161492a5761446581836143f9565b90501561490357614475916143f9565b1561390057806144849161442e565b9161448f83806143f9565b9190928260051b93838504602014841517156137ee576144b18596949561566b565b925f945f97601a61013e19853603019501965b888a1015614866578960051b85013586811215612ecd5785016144e681613956565b6001600160a01b03165f90815260208a9052604090205415610064575f60808201916001600160801b0361451984615573565b16151580614853575b614842575b6001600160a01b0361453882613956565b60405163f76207bb60e01b81526020600482015294911691906101648501906001600160801b03906145b7906001600160a01b03614575866134cc565b1660248901526020850135604489015261459160408601614d4c565b151560648901526001600160a01b036145ac606087016134cc565b1660848901526134e0565b1660a48601526145c960a08301614d4c565b151560c486015260c0820135601e1983360301811215612ecd578201602081359101916001600160401b038211612ecd576060820236038313612ecd5761014060e4880152819052859392916101848501915f905b8082106147f05750505061463560e0830183615587565b602319868403016101048701528083526020600582901b840181019390810191905f908460de1936829003015b8484106147235750505050505050916001600160801b03846146c9846146b66146aa60209a98614697610100879a0185615587565b878303602319016101248901529061560c565b91610120810190615587565b848303602319016101448601529061560c565b039316905af190811561341c575f916146f1575b50816020916001938a0152019901986144c4565b90506020813d821161471b575b8161470b60209383613575565b81010312612ecd575160016146dd565b3d91506146fe565b91939597989950919395601f19848203018752873582811215612ecd578301803582526001600160a01b0361475a602083016134cc565b16602083015261478161477060408301836155bb565b60e0604086015260e08501916155ec565b906001600160801b03614796606083016134e0565b1660608401526080810135608084015260a08101359163ffffffff60e01b8316809303612ecd578360c06147d78160209695879660a060019a015201614d4c565b1515910152990197019401918b99989796959391614662565b91939495509160608060019286358152838060a01b03614812602089016134cc565b1660208201526001600160801b0361482c604089016134e0565b166040820152019401920187959493929161461e565b905061484d82615573565b90614527565b5061486060a0820161496e565b15614522565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a10135806148d4575b604051916020830193845260408301526060820152606081526148ce608082613575565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a16148aa565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612ecd57018035906001600160401b038211612ecd57602001918160061b36038313612ecd57565b358015158103612ecd5790565b60c08201600161498b82856143f9565b905011614d0b5761499c81846143f9565b905015614903576149ad90836143f9565b1561390057803590607e1981360301821215612ecd570191606083019060206149d583613ae8565b91019065ffffffffffff806149e984613ae8565b1691161015614cfc576149fb82613ae8565b65ffffffffffff80600286015460201c16911610614ced57614a4165ffffffffffff614a3a614a3482614a2d87613ae8565b1687615690565b93613ae8565b1684615690565b1115614cde576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a8783614a7f898961442e565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614cbf575b5015614cb0575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614c78575b5090614b0c9161442e565b91614b1682613ae8565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612ecd578101602081359101936001600160401b038211612ecd578160061b36038513612ecd5760606044890152819052869360c485019392915f5b818110614c4057505050836020959365ffffffffffff829484895f9601356064860152614baf604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f92614c0a575b50614bd790613ae8565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526148ce606682613575565b9091506020813d602011614c38575b81614c2660209383613575565b81010312612ecd575190614bd7614bcd565b3d9150614c19565b919550919293604080600192838060a01b03614c5b8a6134cc565b168152602089013560208201520196019101918895949392614b79565b919094506020823d602011614ca8575b81614c9560209383613575565b81010312612ecd57905193614b0c614b01565b3d9150614c88565b6367b9145160e01b5f5260045ffd5b614cd8915060203d6020116106f6576106e88183613575565b5f614ab4565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612ecd57018035906001600160401b038211612ecd57602001918136038313612ecd57565b35908115158203612ecd57565b9060e081016001614d6a82846143f9565b9050116151d357614d7b81836143f9565b90501561490357614d8b916143f9565b156139005780359060be1981360301821215612ecd570160808101614db081836143f9565b9050156151c45765ffffffffffff600284015460201c1691614dd283426137e1565b614de160168601548092613802565b9360a083013594600181018091116137ee5785036151b557614e0685614e0c9361384a565b90613b09565b93614e1b6017820154866137e1565b42106151a657614e2a906156b8565b916005830193428554101561519757614e428361496e565b92602081019060608101936127ac614e7e614e5d8785614d1a565b9190614e6985876143f9565b949091614e76368a61385d565b9436916135b1565b976150de575b50505f989798976003600489019801985b8854811015614ecc575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614e95565b5090919293949596985f5b8851811015614f18576001906001600160a01b03614ef5828c613914565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614ed7565b50929598909396919497508151916001600160401b03831161350f57600160401b831161350f5760209082548484558085106150c3575b5001905f5260205f205f5b8381106150a65750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612ecd576040519260a08401908482106001600160401b0383111761350f57614fce91604052614fc584614d4c565b8552369061385d565b9460208401958652356001600160401b038111612ecd57614ff290369084016135e7565b604084015235906001600160401b038211612ecd570136601f82011215612ecd5761502490369060208135910161389c565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110615084575050508152038082526148ce9060200182613575565b82516001600160a01b0316855286955060209485019490920191600101615067565b82516001600160a01b031681830155602090920191600101614f5a565b6150d890845f528580855f20019103906141cc565b5f614f4f565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182615186575b5050156151775751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561516a57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614e84565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6151909250615a84565b5f80615104565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c166152014284615690565b6152196152136016860154809361384a565b83613b09565b918284108080615435575b15615403575083106153f55761523a9083613b09565b106153e65761524a905b826154d7565b94601960f81b5f523060601b60025260165260365f2093600281101561364257806152db575050600181036152cc57156139005761528b8161529292614d1a565b36916135b1565b9160608351036152bd57826020613602940151606060408301519201519260018154910154906156d3565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146152ee5750505050505f90565b61531390600860048796970154910154906001600160801b038260801c92169061544b565b925f9260035f9201915b868110156153db5761534361058861533d61528b8460051b860186614d1a565b86615a4a565b6001600160a01b0381165f9081526020859052604090205460ff1661536e575b506001905b0161531d565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c156153b35750600190615368565b9460016153c192965d613afb565b938585146153cf575f615363565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116154265761524a9261541e575b50615244565b90505f615418565b6347860b9760e01b5f5260045ffd5b50615444601887015485613b09565b4210615224565b6001600160801b038092160291166154638183613802565b91811561380c5706156136025760010190565b61547e615961565b6154866159b8565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526148ce60c082613575565b906154e290826159ea565b156154ed57600f0190565b60090190565b60ff5f516020615be65f395f51905f525460401c161561550f57565b631afcd79f60e31b5f5260045ffd5b615526613a1c565b5060028101546005820154604051929091615566916004916001600160a01b03166155508661355a565b61555982613777565b8652602086015201613a87565b6040830152606082015290565b356001600160801b0381168103612ecd5790565b9035601e1982360301811215612ecd5701602081359101916001600160401b038211612ecd578160051b36038313612ecd57565b9035601e1982360301811215612ecd5701602081359101916001600160401b038211612ecd578136038313612ecd57565b908060209392818452848401375f828201840152601f01601f1916010190565b90602083828152019260208260051b82010193835f925b8484106156335750505050505090565b90919293949560208061565b600193601f198682030188526156558b886155bb565b906155ec565b9801940194019294939190615623565b6040519190601f01601f191682016001600160401b03811183821017612ecd57604052565b60166156af6136029365ffffffffffff600285015460201c16906137e1565b91015490613802565b6156c242826159ea565b156156cd5760090190565b600f0190565b92939194906156e28587615a84565b156158755782156158755770014551231950b75fc4402da1732fc9bebe19831015615875576001169061010e6157178161566b565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156153db5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158f6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b038116156158ec57905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156136425780615913575050565b6001810361592a5763f645eedf60e01b5f5260045ffd5b60028103615945575063fce698f760e01b5f5260045260245ffd5b60031461594f5750565b6335e2f38360e21b5f5260045260245ffd5b61596961421f565b8051908115615979576020012090565b50505f516020615b665f395f51905f525480156159935790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159c06142ec565b80519081156159d0576020012090565b50505f516020615c065f395f51905f525480156159935790565b906014600e830154920154808314615a3b57818184109311918215911115918190615a34575b15615a255782615a1f57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615a10565b63f26224af60e01b5f5260045ffd5b8151919060418303615a7a57615a739250602082015190606060408401519301515f1a9061587f565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b90615acb5750805115615abc57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615afc575b615adc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ad456fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:47875:165:-:0;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;49133:19;;;1553:47875;49133:38;1553:47875;;-1:-1:-1;;;;;49242:9:165;1553:47875;49270:9;1553:47875;;49330:10;-1:-1:-1;1553:47875:165;;;49358:28;;;;;1553:47875;;;;;;49358:42;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;15023:40;29110:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;29131:15:169;29110:37;;:::i;:::-;15023:40:165;:52;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;13147:34;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;2357:1:29;1553:47875:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:47875:165;;;;;;;;;;;;;;;;19936:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;19936:52;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;25900:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;25996:19;1553:47875;25996:19;;1553:47875;25996:38;1553:47875;;26089:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;26199:29;26269:27;;;;;26411:39;;;1553:47875;;26531:13;;26546:22;;;;;;26825:15;;;:28;1553:47875;;;;;27089:29;;;-1:-1:-1;;;;;2670:66:165;;;;27089:29;1553:47875;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27089:29;;1553:47875;;27089:29;;;;;;:::i;:::-;1553:47875;27079:40;;1553:47875;;;;;;;;;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;26938:261;1553:47875;26938:261;;1553:47875;2670:66;1553:47875;;2670:66;1553:47875;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;2670:66;;1553:47875;;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;26938:261;;;1553:47875;26938:261;;:::i;:::-;1553:47875;26915:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:47875:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:47875:165;;;3993:249:80;1553:47875:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;27343:20;;;2670:66;;1553:47875;;;;27521:100;1553:47875;;;;;27451:32;;;1553:47875;;27521:48;27572:49;27521:48;;;1553:47875;27572:49;;1553:47875;27521:100;;:::i;:::-;27635:77;;;;;;1553:47875;;-1:-1:-1;;;27635:77:165;;-1:-1:-1;;;;;1553:47875:165;;;27635:77;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27635:77;;;;;26526:223;-1:-1:-1;1553:47875:165;;-1:-1:-1;;;27748:57:165;;-1:-1:-1;;;;;1553:47875:165;;;;27748:57;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;27748:57;;;;;;;;;;;;;;26526:223;1553:47875;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;23337:19;1553:47875;;;;;;;27951:32;;;1553:47875;;;-1:-1:-1;;;1553:47875:165;;;;;27748:57;;;;1553:47875;27748:57;1553:47875;27748:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47875;;;;;;;;;27635:77;;;;;;;;:::i;:::-;1553:47875;;27635:77;;;;;1553:47875;;;;27635:77;1553:47875;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:47875;;;;;2670:66;;;1553:47875;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;26570:3;26616:11;;26649:14;;;;;;:::i;:::-;1553:47875;26649:34;26704:14;;;;;:::i;:::-;1553:47875;;;;;26570:3;;1553:47875;;26531:13;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;26238:155;26363:19;;;:::i;:::-;26238:155;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;35540:37:165;1553:47875;;;;35540:37;:::i;:::-;35629:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;35677:96;;;;;;1553:47875;;;;;;;;;;;;35677:96;;1553:47875;;;;;;;;35717:4;;35697:10;1553:47875;35677:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;35809:79:165;;35697:10;1553:47875;35809:79;;1553:47875;35717:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;35809:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;36004:70;1553:47875;;;;35697:10;;36004:70;;35947:238;;;;;1553:47875;;-1:-1:-1;;;35947:238:165;;-1:-1:-1;;;;;1553:47875:165;;;;35947:238;;1553:47875;;;;;;;;;;;;;;;;;;;;;;35947:238;;;;;;;;;36004:70;1553:47875;;;;;;;;35947:238;;;;;;:::i;:::-;1553:47875;;35947:238;;;1553:47875;;;;35947:238;1553:47875;;;;;;;;;35947:238;1553:47875;;;36004:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;35809:79;;;;1553:47875;35809:79;1553:47875;35809:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;35677:96;;;;;:::i;:::-;1553:47875;;35677:96;;;;1553:47875;;;;;;;;;;;;;;16468:211;-1:-1:-1;;;;;;;;;;;1553:47875:165;16565:25;1553:47875;29110:37:169;29131:15;29110:37;;:::i;:::-;16506:38:165;1553:47875;16565:25;;1553:47875;;-1:-1:-1;;;;;1553:47875:165;;;;;16468:211;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;;;;29110:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;29131:15:169;29110:37;;:::i;:::-;16082:41:165;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:47875:165;36916:19;1948:4:38;36916:19:165;;1553:47875;36916:38;1553:47875;;;;37154:20;37150:295;;1553:47875;37558:27;;;1553:47875;;;;37594:33;1553:47875;37558:69;1553:47875;;;;37693:37;;1553:47875;;;37734:21;1553:47875;;;37734:21;;:::i;:::-;1553:47875;-1:-1:-1;1553:47875:165;;37824:28;1553:47875;;;;37824:28;;:::i;:::-;1553:47875;40813:22;;1553:47875;;40813:22;1553:47875;;;;40813:22;:::i;:::-;2366:5;;;;;;;;1553:47875;2366:5;;;;;;;40948:40;2366:5;;;40948:40;:::i;:::-;40998:18;;;41047:22;;;;;;2366:5;38622:146;2366:5;;;;1083:131:25;;1553:47875:165;37964:30;1553:47875;;;;37964:30;;:::i;:::-;38040:33;1553:47875;;;;38040:33;;:::i;:::-;1553:47875;38173:21;1553:47875;;;37734:21;38173;:::i;:::-;1553:47875;38255:13;;1553:47875;;38255:13;;:::i;:::-;1553:47875;;;20345:303:169;1553:47875:165;20345:303:169;;1553:47875:165;;;;;;;;2288:3;1553:47875;;;;;;;;;;;;;37594:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20345:303:169;;;;;;:::i;:::-;1553:47875:165;20322:336:169;;37558:27:165;;;;;1553:47875;;38527:21;1553:47875;;;37734:21;38527;:::i;:::-;1553:47875;2288:3;1553:47875;;37693:37;;1553:47875;;;;37693:37;;1553:47875;38564:26;1553:47875;;;;;;38564:26;1553:47875;38733:21;1553:47875;;;37734:21;38733;:::i;:::-;1553:47875;;;;38622:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:47875:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:47875;;2113:66;41071:3;41133:22;40813;1553:47875;;40813:22;1553:47875;;;;41133:22;:::i;:::-;1553:47875;;;;;;;;;;;;;41198:19;;;1553:47875;;;;;;;;37558:27;1553:47875;;;;;1948:4:38;41198:79:165;1553:47875;;1948:4:38;1553:47875:165;;;41776:17;1553:47875;;;;;;;;;41356:17;;;;;:::i;:::-;;;;1553:47875;;;;;;;-1:-1:-1;41198:19:165;;;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;41479:39;;;1553:47875;;41479:41;;;:::i;:::-;1553:47875;;41352:270;41674:17;41641:51;41674:17;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;41641:51;41776:17;:::i;:::-;1553:47875;;;;;;18048:159:169;;;;;;;4093:83:22;;;;1553:47875:165;41071:3;1553:47875;41032:13;;;41352:270;1553:47875;;41198:19;1553:47875;;;;;;;;41198:19;1553:47875;;;;;;;;;;41352:270;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;;2288:3;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;37150:295;37198:56;37240:13;;1553:47875;;37240:13;;:::i;:::-;1553:47875;;;;;37198:56;:::i;:::-;1553:47875;;;;37385:21;1553:47875;;;37385:21;;:::i;:::-;1553:47875;37367:15;:39;37150:295;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:47875:165;1789:30:38;;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;15511:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;15511:25;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12336:40;1553:47875;;;;;;;;;;;;;;;;;;;;;;;11746:32;-1:-1:-1;;;;;;;;;;;1553:47875:165;11746:32;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;29110:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;29131:15:169;29110:37;;:::i;:::-;15821:41:165;1553:47875;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;:::i;:::-;-1:-1:-1;34451:28:169;34458:20;;;34451:28;:::i;:::-;34537:20;34530:28;34537:20;;;34530:28;:::i;:::-;10519:25:165;;;1553:47875;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;34575:241:169;;1553:47875:165;;34575:241:169;;1553:47875:165;;34575:241:169;;1553:47875:165;10908:33;;;1553:47875;10976:39;;;;1553:47875;11044:33;;;1553:47875;;;11121:48;;;1553:47875;11214:49;;;;1553:47875;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34458:20:169;10602:19:165;;1553:47875;;;10908:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10657:27;;;1553:47875;;;;;;;;;;;;;;10562:712;;1553:47875;;;;;;;;;:::i;:::-;10713:20;;;1553:47875;-1:-1:-1;;;;;1553:47875:165;;;2288:3;;11214:49;1553:47875;;;;;;;;2288:3;34537:20:169;1553:47875:165;;;;;;;;2288:3;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10816:22;;;1553:47875;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;10863:16;;1553:47875;;;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;17434:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;17434:22;1553:47875;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;18671:28;18603:13;18671:28;;18598:129;18618:23;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;18671:28;1553:47875;;;18643:3;18700:15;;;18671:28;18700:15;;;;:::i;:::-;;:::i;:::-;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;18662:54;;;;:::i;:::-;1553:47875;;18603:13;;1553:47875;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;14144:77;;29110:37:169;;29131:15;;29110:37;:::i;:::-;14144:77:165;1553:47875;;;9268:329:171;1553:47875:165;;;;;9268:329:171;;;;;;;;;;;;;;;;;;;;1553:47875:165;9268:329:171;;;;1553:47875:165;9268:329:171;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20174:19;-1:-1:-1;;;;;;;;;;;1553:47875:165;20174:19;1553:47875;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18943:36;-1:-1:-1;;;;;;;;;;;1553:47875:165;18943:36;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;18196:31;-1:-1:-1;;;;;;;;;;;1553:47875:165;18196:31;:43;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;23241:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;23337:19;;1553:47875;23337:38;1553:47875;;23430:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;23581:32;;;1553:47875;23643:48;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;23705:78;;;;;1553:47875;;-1:-1:-1;;;23705:78:165;;23725:10;1553:47875;23705:78;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23705:78;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;23819:61:165;;23725:10;1553:47875;23819:61;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;23819:61;1553:47875;23705:78;;;;;:::i;:::-;1553:47875;;23705:78;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;21933:19;;;1553:47875;;;;;22040:26;;1553:47875;;;22030:37;;22086:25;;1553:47875;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12876:35;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17203:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;17203:25;1553:47875;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;5647:18:40;:43;;;1553:47875:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:47875:165;;;;5870:4:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;5647:43:40;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;5669:21:40;5647:43;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3319:20:37;1553:47875:165;;;966:10:34;1553:47875:165;;3319:20:37;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;17903:19;17838:13;17903:19;;17833:120;17853:20;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17875:3;17929:12;;;;;:::i;:::-;1553:47875;;;;;;;;;;;;17894:48;;;;:::i;:::-;1553:47875;;;;;;;;;17838:13;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;:::i;:::-;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;12030:30;-1:-1:-1;;;;;;;;;;;1553:47875:165;12030:30;1553:47875;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;1553:47875:165;;3975:40:29;1553:47875:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;6429:44:30;;;;;1553:47875:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6959:1:30;;-1:-1:-1;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:47875:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;9356:17;;:::i;:::-;2288:3;;6591:4:30;9334:19:165;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;;2288:3;;;1553:47875;2288:3;1553:47875;2288:3;;;;;1553:47875;2288:3;;;;;;;;;;1553:47875;;;;;;;:::i;:::-;;;;9413:57;1553:47875;9383:27;3676:10:40;9383:27:165;;1553:47875;;;;2288:3;1553:47875;;;;;;;;29110:37:169;29131:15;29110:37;;:::i;:::-;9523:38:165;1553:47875;;;9480:33;;;1553:47875;;2203:1:169;;;;;;;;1553:47875:165;;;;;;;9623:32;;;1553:47875;;;;;;;;;;;9610:57;;;;;;;;9604:63;9610:57;;;;;1553:47875;9604:63;;:::i;:::-;2366:5;;;;;;;;;;;9677:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;1553:47875;9795:49;1553:47875;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6654:20:30;1553:47875:165;;;6943:1;1553:47875;;6654:20:30;1553:47875:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;1553:47875;2288:3;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;1553:47875;2288:3;9610:57;;;;1553:47875;9610:57;1553:47875;9610:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:47875:165;;6496:23:30;6429:44;6943:1:165;1553:47875;;-1:-1:-1;;;;;1553:47875:165;6448:25:30;;6429:44;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;4301:16:30;1553:47875:165;;4724:16:30;;:34;;;;1553:47875:165;;4788:16:30;:50;;;;1553:47875:165;4853:13:30;:30;;;;1553:47875:165;4849:91:30;;;6959:1;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;1553:47875:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47875:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4821:15:165;:19;2288:3;;4879:21;;2288:3;;4946:32;;;2288:3;;;5227:2;5191:32;;;;:::i;:::-;2288:3;5171:58;;2288:3;;;1553:47875;;;;;;;;;:::i;:::-;2288:3;1553:47875;;;2288:3;;;;;2303:62:29;;:::i;:::-;1553:47875:165;;1800:178:73;;;;;;;1553:47875:165;;;1800:178:73;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;48851:24;;;5385:17;;:::i;:::-;2288:3;;1553:47875;5363:19;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;2288:3;;;1553:47875;;2288:3;;;;;;1553:47875;2288:3;;;;;;;;;;;1553:47875;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:47875:165;;;;5435:52;;2288:3;;;1553:47875;;;5435:52;;;;2288:3;;;5412:20;;;;;1553:47875;;;;;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;2288:3;;;1553:47875;;;;;;;;2288:3;;;1553:47875;;;;;;;;;;2203:1:169;5497:25:165;;;2203:1:169;1553:47875:165;;:::i;:::-;;;;;;;:::i;:::-;1855:13:169;1553:47875:165;;2383:18:169;1553:47875:165;24114:89:169;;;1553:47875:165;5685:22;;;1553:47875;;-1:-1:-1;;;;;;2203:1:169;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;5772:65;;1553:47875;;;5772:65;1553:47875;5753:16;;;1553:47875;2288:3;2203:1:169;;1553:47875:165;2203:1:169;;;1553:47875:165;5847:33;;;2203:1:169;;-1:-1:-1;;2203:1:169;1553:47875:165;;;2203:1:169;;;1553:47875:165;;-1:-1:-1;;;5951:37:165;;1553:47875;;;;;5951:37;;1553:47875;5951:37;1553:47875;5951:37;;;;;;;;5945:43;5951:37;;;;;5945:43;;:::i;:::-;2366:5;;;;;;;;;;5998:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;6116:49;2446:3;6116:49;1553:47875;6116:49;;1553:47875;2446:3;1553:47875;;;;;;:::i;:::-;;;2446:3;;1553:47875;2446:3;;1553:47875;2446:3;1553:47875;2446:3;;1553:47875;;;;2446:3;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;2203:1:169;;;;;1145:66:27;;1837:24:26;;:71;;;;1553:47875:165;;;;;;2203:1:169;6308:37:165;;;1553:47875;2203:1:169;5227:2:165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;5685:22:165;1705:1673:171;;;;;;;;;;;47733:52:165;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;1705:1673:171;;47979:15:165;;;;47862:13;47881:16;;;;47862:13;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;47862:13;;47877:27;;;;;;;48039:13;48081:3;1553:47875;;48054:25;;;;;1553:47875;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;4821:15;;;;48249:28;4821:15;48249:28;;1553:47875;5064:101:30;;1553:47875:165;;;5064:101:30;1553:47875:165;5140:14:30;1553:47875:165;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;5140:14:30;1553:47875:165;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;1705:1673:171;;;;1553:47875:165;1705:1673:171;;1553:47875:165;-1:-1:-1;;;1553:47875:165;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;2366:5:165;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;;2288:3;5951:37;1553:47875;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;4977:67:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:47875:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1553:47875:165;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:47875:165;4815:4:60;4807:23;4803:145;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:47875:165;;4908:29:60;1553:47875:165;-1:-1:-1;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:47875:165;4392:4:60;4384:23;;;:120;;;;1553:47875:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;5865:52:60;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;5865:52:60;;;;;;;;1553:47875:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:47875:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;2407:36:53;;;;1553:47875:165;;;;2458:15:53;:11;;4065:25:66;;1553:47875:165;4107:55:66;4065:25;;;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:47875:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:47875:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:47875:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:47875:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:47875:165;;;6026:34:60;;5865:52;;;;1553:47875:165;5865:52:60;;1553:47875:165;5865:52:60;;;;;;1553:47875:165;5865:52:60;;;:::i;:::-;;;1553:47875:165;;;;;5865:52:60;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:47875:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;2971:9:37;2967:62;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3627:22:37;1553:47875:165;;;966:10:34;1553:47875:165;;3627:22:37;1553:47875:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:47875:165;3003:15:37;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;20709:23;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29110:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;29131:15:169;29110:37;;:::i;:::-;1553:47875:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;29254:36:165;1553:47875;;;;29254:36;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;29341:70;1553:47875;;;;29378:10;;29341:70;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;-1:-1:-1;;;;;1553:47875:165;29301:134;;;;;1553:47875;;-1:-1:-1;;;29301:134:165;;-1:-1:-1;;;;;1553:47875:165;;;;29301:134;;1553:47875;;;;;;;;;;;;;;;;;;29301:134;1553:47875;;29301:134;;;;;;;;;1553:47875;;;;;;;;29341:70;;;1553:47875;;;;;;;;;;;;;;3980:23:40;;:::i;1553:47875:165:-;;;;;;;;;;;;;;11492:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;11492:22;1553:47875;;;;;;;;;;;;;;;;;;;;;19536:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;19536:51;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21027:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;21027:51;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;31297:36:165;1553:47875;;;;31297:36;:::i;:::-;31385:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;31433:96;;;;;;1553:47875;;;;;;;;;;;;31433:96;;1553:47875;;;;;;;;31473:4;;31453:10;1553:47875;31433:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;31565:79:165;;31453:10;1553:47875;31565:79;;1553:47875;31473:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;31565:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;31760:70;1553:47875;;;;31453:10;;31760:70;;-1:-1:-1;;;;;;;;;;;1553:47875:165;31385:20;12604:23;1553:47875;-1:-1:-1;;;;;1553:47875:165;31703:236;;;;;1553:47875;;-1:-1:-1;;;31703:236:165;;-1:-1:-1;;;;;1553:47875:165;;;;31703:236;;1553:47875;;;;;;;;;;;;;;31703:236;1553:47875;;;31703:236;;;;;;;;;;1553:47875;;;;;;;;31760:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;31565:79;;;;1553:47875;31565:79;1553:47875;31565:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;31433:96;;;;;:::i;:::-;1553:47875;;31433:96;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;33365:37:165;1553:47875;;;;33365:37;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;33453:70;1553:47875;;;;33490:10;;33453:70;;33413:136;;;;;1553:47875;;-1:-1:-1;;;33413:136:165;;-1:-1:-1;;;;;1553:47875:165;;;;33413:136;;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;33413:136;1553:47875;-1:-1:-1;33413:136:165;;;;;;;;1553:47875;33413:136;;;33453:70;1553:47875;;;;;;;33413:136;1553:47875;33413:136;;;:::i;:::-;1553:47875;33413:136;;;1553:47875;;;;;;;;;33453:70;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21424:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;21424:52;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;19201:42;-1:-1:-1;;;;;;;;;;;1553:47875:165;19201:42;1553:47875;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;:::o;2224:17::-;1553:47875;;;;;;;:::i;:::-;2224:17;1553:47875;;-1:-1:-1;;;1553:47875:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;1553:47875;;;2288:3;;;;;;;;;;;;;;;:::o;:::-;1553:47875;;;2288:3;;;;;;;;2203:1:169;;;;;;;;;;1553:47875:165;;;;;;;2203:1:169;:::o;:::-;1553:47875:165;;2203:1:169;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:47875;;;;:::i;:::-;2446:3;;;1553:47875;;;2446:3;;;1553:47875;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47875;;;;;:::i;:::-;2446:3;;;;;;;;1553:47875;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;14401:375::-;29110:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;29131:15:169;29110:37;;:::i;:::-;14653:22:165;;;1553:47875;14605:22;;;;;;14758:11;;;;1553:47875;14401:375;:::o;14629:3::-;14676:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;14652:39;14648:90;;1553:47875;;14590:13;;14648:90;14711:12;;;;1553:47875;14711:12;:::o;1553:47875::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;1553:47875:165;;;;;;;:::o;2670:66::-;;;;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:47875:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1553:47875:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1553:47875:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;38872:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;;;;1553:47875;39048:38;1553:47875;;;;;39141:19;;;1553:47875;;;;;;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:167;1052:614:22;1553:47875:165;1052:614:22;1888:66:167;4093:83:22;;1998:66:167;1553:47875:165;4093:83:22;;;2108:66:167;1553:47875:165;4093:83:22;;;2218:66:167;2210:6;4093:83:22;;;2328:66:167;2320:6;4093:83:22;;;2438:66:167;2430:6;4093:83:22;;;2548:66:167;2540:6;4093:83:22;;;2658:66:167;2650:6;4093:83:22;;;2768:66:167;2760:6;4093:83:22;;;2878:66:167;2870:6;4093:83:22;;;2988:66:167;2980:6;4093:83:22;;;3098:66:167;3090:6;4093:83:22;;;3208:66:167;3200:6;4093:83:22;;;3318:66:167;3310:6;4093:83:22;;;3428:66:167;3420:6;4093:83:22;;;3538:66:167;3530:6;4093:83:22;;;3648:66:167;3640:6;4093:83:22;;;3758:66:167;3750:6;4093:83:22;;;3868:66:167;3860:6;4093:83:22;;;3978:66:167;3970:6;4093:83:22;;;4088:66:167;4080:6;4093:83:22;;;4198:66:167;4190:6;4093:83:22;;;39601:4:165;4536:2:167;1553:47875:165;4437:66:167;;;;;4436:103;4416:6;4093:83:22;;;4592:66:167;4584:6;4093:83:22;;;39478:135:165;4670:150:167;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;:::-;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;39732:32;;1553:47875;;39732:32;39775:24;38872:934;:::o;1553:47875::-;;;;;;;;;38872:934;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;31328:4;39048:19;;1553:47875;39048:38;1553:47875;;;-1:-1:-1;1553:47875:165;39141:19;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;-1:-1:-1;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;-1:-1:-1;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:168;1052:614:22;1553:47875:165;1052:614:22;2041:66:168;4093:83:22;;39540:4:165;1052:614:22;1553:47875:165;2187:66:168;2186:105;1553:47875:165;4093:83:22;;;2342:66:168;1553:47875:165;4093:83:22;;;-1:-1:-1;2420:150:168;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;24336:229:169:-;1553:47875:165;;:::i;:::-;;;24514:12:169;15374:24:83;15370:103;;1553:47875:165;837:15:87;14374:24:83;14370:103;;1553:47875:165;;;;;:::i;:::-;24484:1:169;1553:47875:165;;;24514:12:169;1553:47875:165;24452:106:169;;;1553:47875:165;;837:15:87;1553:47875:165;;24452:106:169;;1553:47875:165;24336:229:169;:::o;14370:103:83:-;15421:41;;;24484:1:169;14421:41:83;14452:2;14421:41;1553:47875:165;837:15:87;1553:47875:165;;;24484:1:169;14421:41:83;15370:103;15421:41;;;24484:1:169;15421:41:83;15452:2;15421:41;1553:47875:165;24514:12:169;1553:47875:165;;;24484:1:169;15421:41:83;1553:47875:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23311:532:169;23436:12;-1:-1:-1;;2288:3:165;;;23311:532:169;;2288:3:165;;;;1553:47875;;23436:12:169;23476:22;;23436:12;;23476:50;1553:47875:165;23476:50:169;;23560:8;;;;;;23536:278;-1:-1:-1;1553:47875:165;;-1:-1:-1;;23311:532:169:o;23541:17::-;23599:12;;23629:11;;;;;-1:-1:-1;23451:1:169;;-1:-1:-1;;;23660:11:169:o;23625:119::-;23696:8;23692:52;;-1:-1:-1;;1553:47875:165;23541:17:169;;23692:52;23724:5;;23476:50;23505:21;23436:12;;23505:21;:::i;:::-;23476:50;;;1553:47875:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;39812:846::-;;39940:22;;;39973:1;39940:22;;;;:::i;:::-;:34;;;1553:47875;;40017:22;;;;:::i;:::-;:34;;;40013:177;;40244:22;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;40334:23;;;;;:::i;:::-;2366:5;;;;1553:47875;2366:5;;;;;45846:2;2366:5;;;;;;;45892:36;;;;;;:::i;:::-;45938:18;1553:47875;45972:13;1553:47875;;46107:28;1553:47875;;;;;;46107:28;;45967:685;46007:3;45987:18;;;;;;1553:47875;;;;;;;;;;;;;;46136:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;46107:53;1553:47875;;;39940:22;46230:25;;;-1:-1:-1;;;;;46230:25:165;;;:::i;:::-;1553:47875;46230:30;;:72;;;46007:3;46226:144;;46007:3;-1:-1:-1;;;;;46417:18:165;;;:::i;:::-;1553:47875;;-1:-1:-1;;;46409:76:165;;45846:2;46409:76;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;:::i;:::-;;;;;;45846:2;1553:47875;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;1553:47875:165;;;;;;;;;;;45846:2;1553:47875;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;45846:2;1553:47875;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1553:47875:165;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;1553:47875:165;;;;;;;:::i;:::-;46409:76;1553:47875;;46409:76;;;;;;;;1553:47875;46409:76;;;1553:47875;4093:83:22;;45846:2:165;4093:83:22;39973:1:165;4093:83:22;;;;1553:47875:165;46007:3;1553:47875;45972:13;;;46409:76;;;45846:2;46409:76;;;;;;;;;1553:47875;46409:76;;;:::i;:::-;;;1553:47875;;;;;39973:1;46409:76;;;;;-1:-1:-1;46409:76:165;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;45846:2;1553:47875;;;:::i;:::-;;45846:2;1553:47875;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;39940:22;1553:47875;;;39940:22;1553:47875;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;39973:1;1553:47875;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39973:1;1553:47875;;;;;;;;;;;45846:2;1553:47875;;;:::i;:::-;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;46226:144;46330:25;;;;;:::i;:::-;46226:144;;;46230:72;46265:37;;1553:47875;46265:37;;;:::i;:::-;46264:38;46230:72;;45987:18;;;;;;;;;;1083:131:25;40386:16:165;1553:47875;45846:2;40386:16;;1553:47875;;40374:29;45846:2;1553:47875;;;;;40374:29;40417:32;1553:47875;40417:46;40413:127;;45967:685;1553:47875;;17672:64:169;45846:2:165;17672:64:169;;1553:47875:165;;;;;;;;;;;;17672:64:169;;;39940:22:165;17672:64:169;;:::i;:::-;1553:47875:165;17662:75:169;;39812:846:165;:::o;40413:127::-;40484:45;45846:2;1553:47875;;;;;40484:45;40413:127;;40013:177;40159:20;;;40166:13;40159:20;:::o;1553:47875::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;42108:1705::-;42238:24;;;42273:1;42238:24;;;;:::i;:::-;:36;;;1553:47875;;42319:24;;;;:::i;:::-;:36;;;42315:179;;42550:24;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;42596:21;;;;;42620;42596;;;:::i;:::-;42620;;;1553:47875;42620:21;;;;:::i;:::-;1553:47875;;;42596:45;1553:47875;;;42699:21;;;:::i;:::-;1553:47875;42724:29;;;;1553:47875;42620:21;1553:47875;;;;42699:54;1553:47875;;42910:46;1553:47875;42934:21;42830:46;42854:21;;;;:::i;:::-;1553:47875;42830:46;;:::i;:::-;42934:21;;:::i;:::-;1553:47875;42910:46;;:::i;:::-;-1:-1:-1;1553:47875:165;;;43078:31;;;1553:47875;43147:32;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;43246:19;;;;1553:47875;;;;42620:21;;1553:47875;43134:144;43215:62;42620:21;43246:19;;1553:47875;43246:19;:::i;:::-;:31;1553:47875;43215:62;;:::i;:::-;43246:19;1553:47875;;;;;;;;;43134:144;;;;;;1553:47875;;;;;43134:144;;;;;;;1553:47875;43134:144;;;42108:1705;1553:47875;;;;;43246:19;1553:47875;-1:-1:-1;;;43368:185:165;;-1:-1:-1;;;;;1553:47875:165;;;43134:144;43368:185;;1553:47875;;;;;;;;42620:21;43513:26;;;1553:47875;43134:144;1553:47875;;;;43368:185;1553:47875;-1:-1:-1;43368:185:165;;;;;;;;1553:47875;43368:185;;;42108:1705;43654:19;;;;;:::i;:::-;43675:21;;;;:::i;:::-;1553:47875;43246:19;1553:47875;;;;;43605:92;;43246:19;43134:144;43605:92;;1553:47875;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;43147:32;1553:47875;;;;;;;42596:21;43134:144;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;;;;;;;43368:185;1553:47875;;;;43246:19;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;43605:92;;;;;;;;;1553:47875;43605:92;;;1553:47875;43784:21;;;;:::i;:::-;43246:19;1553:47875;18721:70:169;42620:21:165;18721:70:169;;1553:47875:165;;;43246:19;1553:47875;;;2288:3;1553:47875;;;;;;42596:21;1553:47875;;;18721:70:169;;;;;;;:::i;43605:92:165:-;;;;42620:21;43605:92;;42620:21;43605:92;;;;;;1553:47875;43605:92;;;:::i;:::-;;;1553:47875;;;;;;43784:21;43605:92;;;;;-1:-1:-1;43605:92:165;;1553:47875;;;;;;;43246:19;1553:47875;42273:1;1553:47875;;;;;;;;;:::i;:::-;;;;42620:21;1553:47875;;;42620:21;1553:47875;;;;;;;;;;;;;;;;43368:185;;;;;42620:21;43368:185;;42620:21;43368:185;;;;;;1553:47875;43368:185;;;:::i;:::-;;;1553:47875;;;;;;;43654:19;43368:185;;;;;-1:-1:-1;43368:185:165;;1553:47875;;;;;;43134:144;1553:47875;;43134:144;;;;42620:21;43134:144;42620:21;43134:144;;;;;;;:::i;:::-;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;43880:1705::-;;44013:27;;;44051:1;44013:27;;;;:::i;:::-;:39;;;1553:47875;;44100:27;;;;:::i;:::-;:39;;;44096:182;;44337:27;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;44386:22;;;;;;;:::i;:::-;:33;;;1553:47875;;;44553:29;;;1553:47875;;;;44535:15;:47;:15;;:47;:::i;:::-;44534:72;44586:16;;;1553:47875;44534:72;;;:::i;:::-;44625:20;;;;1553:47875;2670:66;44051:1;2670:66;;;;;;;44625:43;;1553:47875;;44759:43;;44727:75;44759:43;;:::i;:::-;44727:75;;:::i;:::-;44854:25;44839:40;44854:25;;;1553:47875;44839:40;;:::i;:::-;44535:15;44820:59;1553:47875;;44998:34;;;:::i;:::-;45050:28;1553:47875;45050:28;;44535:15;;1553:47875;;45050:46;1553:47875;;;45245:34;;;:::i;:::-;45293:31;1553:47875;45293:31;;45338:45;;;;;2446:3;;45338:45;;;;:::i;:::-;45397:22;;;;;;:::i;:::-;1553:47875;;;2446:3;1553:47875;2446:3;;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;47096:752;;;43880:1705;47862:13;;1553:47875;47862:13;;;47881:16;1553:47875;47881:16;;;47979:15;;47857:168;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;44051:1;1553:47875;47862:13;;47877:27;;;;;;;;;;1553:47875;48081:3;1553:47875;;48054:25;;;;;44051:1;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;;;;;;45471:47;1553:47875;;;;;;45471:47;1553:47875;;;;;;;;;;44625:20;1553:47875;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45338:45;1553:47875;;;;44386:22;1553:47875;;;;;;19166:30:169;;2203:1;1553:47875:165;2203:1:169;;19216:32;;2203:1;1553:47875:165;;;19081:257:169;;;1553:47875:165;19081:257:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;19081:257:169;;;;;;1553:47875:165;19081:257:169;;;:::i;1553:47875:165:-;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;44051:1;1553:47875;;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;44051:1;1553:47875;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;47096:752;2203:1:169;;47557:25:165;1553:47875;47557:25;;2203:1:169;;;1145:66:27;;1837:24:26;;:71;;;;47096:752:165;1553:47875;;;;;2203:1:169;1553:47875:165;;2203:1:169;44051::165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;;;;1553:47875:165;1705:1673:171;;;;;;;44553:29:165;47733:52;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;47096:752:165;;1705:1673:171;;1553:47875:165;1705:1673:171;;;;1553:47875:165;;;;;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25056:3813:169;;;;;;1553:47875:165;33054:29:169;;;1553:47875:165;;;;33086:22:169;25425:15;33086:22;;:::i;:::-;33054:77;33086:45;33111:16;;;1553:47875:165;33086:45:169;;;:::i;:::-;33054:77;;:::i;:::-;25455:15;;;;;;:82;;25056:3813;25451:676;;;25561:35;;;1553:47875:165;;25646:25:169;;;;:::i;:::-;:39;1553:47875:165;;26221:24:169;25451:676;;26221:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:47875:165;3226:200:80;26286:4:169;3226:200:80;;33054:29:169;3226:200:80;33111:16:169;3226:200:80;;1553:47875:165;3226:200:80;1553:47875:165;33054:29:169;1553:47875:165;;;;;26349:37:169;;;26410:23;;33054:19;26410:23;;1553:47875:165;;;;;;;2446:3;1553:47875;;:::i;:::-;2446:3;;;:::i;:::-;1553:47875;3226:200:80;1553:47875:165;;26541:23:169;1553:47875:165;;26731:240:169;1553:47875:165;27252:272:169;26731:240;;;3226:200:80;26731:240:169;;;;;;;1553:47875:165;33054:19:169;1553:47875:165;;27341:32:169;;1553:47875:165;27252:272:169;;:::i;1553:47875:165:-;;;;;;;;;;;;;;;;;;26345:2495:169;1553:47875:165;;;33054:19:169;27545:37;27541:1299;;26345:2495;;;;;1553:47875:165;25056:3813:169;:::o;27541:1299::-;27618:199;27655:15;27695:25;27655:15;;;;;1553:47875:165;27695:25:169;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;27618:199:169;;:::i;:::-;27832:27;1553:47875:165;27879:13:169;28075:14;1553:47875:165;28075:14:169;;27874:929;27918:3;27894:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:47875;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;28071:718:169;;27918:3;;33054:19;27918:3;27879:13;1553:47875:165;27879:13:169;;28071:718;-1:-1:-1;;;;;2780:163:73;1553:47875:165;2780:163:73;;;2113:66:165;1553:47875;2780:163:73;;;;3327:69:76;;28434:50:169;;;28512:8;33054:19;28512:8;;;28430:223;3556:68:76;33054:19:169;28679:17;3556:68:76;;;28679:17:169;:::i;:::-;:30;;;;28675:96;;28071:718;;;28675:96;28737:11;;;;;;;33054:19;28737:11;:::o;27894:22::-;;;;;;;;1553:47875:165;28817:12:169;:::o;1553:47875:165:-;;;;;;;;;;;;;;;;;;25451:676:169;25425:15;;;;;;25920:21;;1553:47875:165;;26221:24:169;25978:69;;;25451:676;;;;25978:69;26017:15;;25978:69;;;1553:47875:165;;;;;;;;;25455:82:169;25505:32;25492:45;25505:32;;;1553:47875:165;25492:45:169;;:::i;:::-;25425:15;25474:63;25455:82;;31903:456;-1:-1:-1;;;;;31903:456:169;;1553:47875:165;;;;32212:24:169;;;;:::i;:::-;1553:47875:165;;;;;;32324:5:169;1553:47875:165;;32337:1:169;1553:47875:165;31903:456:169;:::o;4016:191:40:-;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:47875:165;;4107:92:40;;;;1553:47875:165;1959:95:40;1553:47875:165;;;1959:95:40;;1553:47875:165;1959:95:40;;;1553:47875:165;4170:13:40;1959:95;;;1553:47875:165;4193:4:40;1959:95;;;1553:47875:165;1959:95:40;4107:92;;;;;;:::i;29819:312:169:-;;29942:37;29819:312;29942:37;;:::i;:::-;;;;30002;;29995:44;:::o;29938:187::-;30077:37;;30070:44;:::o;7082:141:30:-;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;33478:467:169;1553:47875:165;;:::i;:::-;-1:-1:-1;33782:51:169;;;1553:47875:165;33900:27:169;;;1553:47875:165;;;;;;;;33853:15:169;;-1:-1:-1;;;;;1553:47875:165;;;;:::i;:::-;;;;:::i;:::-;;;33641:297:169;;;2288:3:165;33853:15:169;1553:47875:165;:::i;:::-;;33641:297:169;;1553:47875:165;33641:297:169;;;1553:47875:165;33478:467:169;:::o;1553:47875:165:-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;32544:179:169:-;32696:16;32658:34;32657:59;32544:179;1553:47875:165;32663:29:169;;;1553:47875:165;;;;32658:34:169;;:::i;:::-;32696:16;;1553:47875:165;32657:59:169;;:::i;29360:322::-;29480:50;29514:15;29480:50;;:::i;:::-;29514:15;;;29553:37;;29546:44;:::o;29476:200::-;29628:37;;29621:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;2670:66:165;4010:31:20;;;:::i;:::-;1553:47875:165;425:3:20;1553:47875:165;;;4003:1:27;2933;2929:5;;1553:47875:165;425:3:20;4492:84:22;;;4093:83;2670:66:165;4093:83:22;;;4003:1:27;1553:47875:165;;2670:66;4492:84:22;;;2670:66:165;4093:83:22;;;;;2670:66:165;4093:83:22;;;1581:66:20;2670::165;4093:83:22;;;-1:-1:-1;;;2670:66:165;4093:83:22;;;531:131:25;;2670:66:165;4093:83:22;;;;;;4003:1:27;2670:66:165;4492:84:22;;2933:1:27;4492:84:22;;2670:66:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;2670:66:165;1145::27;;531:131:25;;6084:3:20;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;6084:3:20;1553:47875:165;;6062:44:20;1145:66:27;;;1860::20;1553:47875:165;1860:66:20;;1553:47875:165;6037:2:20;1553:47875:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:47875:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:47875:165;4093:83:22;;1553:47875:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:47875:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:47875:165;1640:140:24;3543:209:25;1553:47875:165;3543:209:25;648:2:20;3543:209:25;1553:47875:165;;;;;6037:2:20;1553:47875:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:47875:165;8070:12:20;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:47875:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1553:47875:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:47875:165;7462:38:77;;1553:47875:165;;7523:23:77;;;7375:20;7523:23;1553:47875:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:47875:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1553:47875:165;;;7375:20:77;7763:32;6928:687:40;1553:47875:165;;:::i;:::-;;;;7100:22:40;;;;1553:47875:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:47875:165;;:::i;:::-;;;;8017:25:40;;;;1553:47875:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;8411:18:40;;;;8449:20;:::o;30538:863:169:-;;30784:54;30706;;;1553:47875:165;30784:54:169;;1553:47875:165;30912:10:169;;;1553:47875:165;;30983:9:169;;;;31015;;;;;31047;;;31148:14;;;;;30538:863;1553:47875:165;;;31364:30:169;;;31357:37;;30538:863;:::o;31364:30::-;31379:14;;30538:863;-1:-1:-1;30538:863:169:o;1553:47875:165:-;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;31148:14:169;;;;;1553:47875:165;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;2129:778:77;1553:47875:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;1767:250:27:-;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1553:47875:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:47875:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1553:47875:165;;;;4933:24:66;1553:47875:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":11426,"length":32},{"start":11573,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[],bytes[],bytes[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"e9a28a60","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":"ee32004f","createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":"0d91bf2a","eip712Domain()":"84b0196e","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":"8c4ace6a","requestCodeValidationBaseFee()":"188509e9","requestCodeValidationExtraFee()":"f1ef31ec","requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":"f0fd702a","setMirror(address)":"3d43b418","setRequestCodeValidationBaseFee(uint256)":"11bec80d","setRequestCodeValidationExtraFee(uint256)":"0b9737ce","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedBlobHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidBlobHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"InvalidBlobHashesLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"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\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"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\"}],\"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\":\"bytes32\",\"name\":\"ethBlockHash\",\"type\":\"bytes32\"}],\"name\":\"EBCommitted\",\"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\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"MBCommitted\",\"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\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"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\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"events\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"ethEvents\",\"type\":\"bytes[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastAdvancedEthBlock\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasAggregatedPublicKey\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"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\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithAbiInterfaceAndExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"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\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"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\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"_blobHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v1\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s1\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_v2\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s2\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidationOnBehalf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExtraFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationExtraFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxValidators\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationBaseFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationExtraFee\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BlobNotFound()\":[{\"details\":\"Thrown when the tx is not in EIP-4844/EIP-7594 format, so it doesn't have blobhashes.\"}],\"CodeAlreadyOnValidationOrValidated()\":[{\"details\":\"Thrown when the code is already on validation or validated.\"}],\"CodeNotValidated()\":[{\"details\":\"Thrown when the code is not validated and someone tries to create program with it.\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"EraDurationTooShort()\":[{\"details\":\"Thrown when the era duration is too short (era duration must be greater than election duration).\"}],\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ExpiredSignature(uint256)\":[{\"details\":\"Thrown when deadline for code validation request has expired.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenesisHashAlreadySet()\":[{\"details\":\"Thrown when the genesis hash is already set by someone else.\"}],\"GenesisHashNotFound()\":[{\"details\":\"Thrown when the genesis hash is not found from previous blocks. There is 256 blocks lookback for `blockhash` opcode, so if the genesis block is too old, it may not be found.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidBlobHash(uint256,bytes32,bytes32)\":[{\"details\":\"Thrown when the blobhash for code validation request is invalid.\"}],\"InvalidBlobHashesLength(uint256,uint256)\":[{\"details\":\"Thrown when the provided blob hashes length doesn't match the actual blob hashes length in transaction.\"}],\"InvalidElectionDuration()\":[{\"details\":\"Thrown when an invalid election duration is provided (must be greater than 0).\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidSigner(address,address)\":[{\"details\":\"Thrown when the signer of the code validation request is not the requester.\"}],\"InvalidTimestamp()\":[{\"details\":\"Thrown when an invalid block.timestamp is provided (must be greater than 0).\"}],\"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.\"}],\"RouterGenesisHashNotInitialized()\":[{\"details\":\"Thrown when the router's genesis hash is not initialized (no one called `lookupGenesisHash` yet).\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidationDelayTooBig()\":[{\"details\":\"Thrown when the validation delay is too big.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"events\":{\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch hash (`keccak256` algorithm), see `Gear.batchCommitmentHash(...)`.\"}},\"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. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, one the client side it's calculated as `gprimitives::CodeId::generate(wasm_code)`.\"}},\"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.\"}},\"EBCommitted(bytes32)\":{\"details\":\"Lets observers update `last_committed_eb` so the producer can decide when to issue a checkpoint batch even with no transitions.\",\"params\":{\"ethBlockHash\":\"Latest Ethereum block hash whose events were folded into the chain commitment's MB head.\"}},\"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.\"},\"MBCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"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. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\"}},\"StorageSlotChanged(bytes32)\":{\"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.\",\"params\":{\"slot\":\"The new storage slot.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\",\"returns\":{\"_0\":\"domainSeparator The domain separator.\"}},\"areValidators(address[])\":{\"details\":\"Checks if the given addresses are all validators.\",\"returns\":{\"_0\":\"areValidators `true` if all addresses are validators, `false` otherwise.\"}},\"codeState(bytes32)\":{\"details\":\"Returns the state of code.\",\"returns\":{\"_0\":\"codeState The state of the code.\"}},\"codesStates(bytes32[])\":{\"details\":\"Returns the states of multiple codes.\",\"returns\":{\"_0\":\"codesStates The states of the codes.\"}},\"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[],bytes[],bytes[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])\":{\"details\":\"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\",\"params\":{\"_batch\":\"The batch commitment data.\",\"_signatureType\":\"The type of signature to validate.\",\"_signatures\":\"The signatures for the batch commitment.\"}},\"computeSettings()\":{\"details\":\"Returns the computation settings.\",\"returns\":{\"_0\":\"computeSettings The computation settings.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createProgram(bytes32,bytes32,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterface(bytes32,bytes32,address,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"genesisBlockHash()\":{\"details\":\"Returns the hash of the genesis block.\",\"returns\":{\"_0\":\"genesisBlockHash The hash of the genesis block.\"}},\"genesisTimestamp()\":{\"details\":\"Returns the timestamp of the genesis block.\",\"returns\":{\"_0\":\"genesisTimestamp The timestamp of the genesis block.\"}},\"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])\":{\"details\":\"Initializes the `Router` with the given parameters.\",\"params\":{\"_aggregatedPublicKey\":\"The optional aggregated public key of the initial validators. Will be used in future.\",\"_electionDuration\":\"The duration of an election in seconds.\",\"_eraDuration\":\"The duration of an era in seconds.\",\"_middleware\":\"The address of the middleware contract.\",\"_mirror\":\"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\",\"_owner\":\"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\",\"_validationDelay\":\"The delay before validators can start validating in seconds.\",\"_validators\":\"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.\",\"_verifiableSecretSharingCommitment\":\"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\",\"_wrappedVara\":\"The address of the `WrappedVara` (WVARA) ERC20 token contract.\"}},\"isValidator(address)\":{\"details\":\"Checks if the given address is a validator.\",\"returns\":{\"_0\":\"isValidator `true` if the address is a validator, `false` otherwise.\"}},\"latestCommittedBatchHash()\":{\"details\":\"Returns the hash of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchHash The hash of the latest committed batch.\"}},\"latestCommittedBatchTimestamp()\":{\"details\":\"Returns the timestamp of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchTimestamp The timestamp of the latest committed batch.\"}},\"lookupGenesisHash()\":{\"details\":\"Looks up the genesis hash from previous blocks.\"},\"middleware()\":{\"details\":\"Returns the address of the middleware implementation.\",\"returns\":{\"_0\":\"middleware The address of the middleware implementation.\"}},\"mirrorImpl()\":{\"details\":\"Returns the address of the mirror implementation.\",\"returns\":{\"_0\":\"mirrorImpl The address of the mirror implementation.\"}},\"nonces(address)\":{\"details\":\"Returns the next unused nonce for an address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\",\"returns\":{\"_0\":\"isPaused `true` if the contract is paused, `false` otherwise.\"}},\"programCodeId(address)\":{\"details\":\"Returns the code ID of the given program.\",\"returns\":{\"_0\":\"codeId The code ID of the program.\"}},\"programsCodeIds(address[])\":{\"details\":\"Returns the code IDs of the given programs.\",\"returns\":{\"_0\":\"codesIds The code IDs of the programs.\"}},\"programsCount()\":{\"details\":\"Returns the count of programs.\",\"returns\":{\"_0\":\"programsCount The count of programs.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\",\"details\":\"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!\"},\"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.\"},\"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.\",\"params\":{\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\"}},\"requestCodeValidationBaseFee()\":{\"details\":\"Returns the base fee for requesting code validation in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationBaseFee The base fee for requesting code validation.\"}},\"requestCodeValidationExtraFee()\":{\"details\":\"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else.\"}},\"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.\",\"params\":{\"_blobHashes\":\"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.\",\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_r2\":\"ECDSA signature parameter (for permit).\",\"_requester\":\"The address of the requester on behalf of whom the code validation is requested.\",\"_s1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_s2\":\"ECDSA signature parameter (for permit).\",\"_v1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_v2\":\"ECDSA signature parameter (for permit).\"}},\"setMirror(address)\":{\"details\":\"Sets the `Mirror` implementation address.\",\"params\":{\"newMirror\":\"The new mirror implementation address.\"}},\"setRequestCodeValidationBaseFee(uint256)\":{\"details\":\"Sets the base fee for requesting code validation in WVARA ERC20 token.\",\"params\":{\"newBaseFee\":\"The new base fee for requesting code validation.\"}},\"setRequestCodeValidationExtraFee(uint256)\":{\"details\":\"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"params\":{\"newExtraFee\":\"The new extra fee for requesting code validation on behalf of someone else.\"}},\"signingThresholdFraction()\":{\"details\":\"Returns the signing threshold fraction.\",\"returns\":{\"thresholdDenominator\":\"The denominator of the signing threshold fraction.\",\"thresholdNumerator\":\"The numerator of the signing threshold fraction.\"}},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\",\"returns\":{\"_0\":\"storageView The storage view of the contract storage.\"}},\"timelines()\":{\"details\":\"Returns the timelines.\",\"returns\":{\"_0\":\"timelines The timelines.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses the contract.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"validatedCodesCount()\":{\"details\":\"Returns the count of validated codes.\",\"returns\":{\"_0\":\"validatedCodesCount The count of validated codes.\"}},\"validators()\":{\"details\":\"Returns the list of current validators.\",\"returns\":{\"_0\":\"validators The list of current validators.\"}},\"validatorsAggregatedPublicKey()\":{\"details\":\"Returns the aggregated public key of the current validators.\",\"returns\":{\"_0\":\"validatorsAggregatedPublicKey The aggregated public key of the current validators.\"}},\"validatorsCount()\":{\"details\":\"Returns the count of current validators.\",\"returns\":{\"_0\":\"validatorsCount The count of current validators.\"}},\"validatorsThreshold()\":{\"details\":\"Returns the threshold number of validators required for a valid signature.\",\"returns\":{\"_0\":\"threshold The threshold number of validators required for a valid signature.\"}},\"validatorsVerifiableSecretSharingCommitment()\":{\"details\":\"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\",\"returns\":{\"_0\":\"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators.\"}},\"wrappedVara()\":{\"details\":\"Returns the address of the wrapped Vara implementation.\",\"returns\":{\"_0\":\"wrappedVara The address of the wrapped Vara implementation.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"EBCommitted(bytes32)\":{\"notice\":\"Emitted when a chain commitment carrying a `lastAdvancedEthBlock` lands on-chain.\"},\"MBCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"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/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"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\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343\",\"dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Router.sol\":{\"keccak256\":\"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036\",\"dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3\",\"dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b\",\"dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1\",\"dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389\",\"dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"providedBlobHash","type":"bytes32"},{"internalType":"bytes32","name":"expectedBlobHash","type":"bytes32"}],"type":"error","name":"InvalidBlobHash"},{"inputs":[{"internalType":"uint256","name":"providedLength","type":"uint256"},{"internalType":"uint256","name":"expectedLength","type":"uint256"}],"type":"error","name":"InvalidBlobHashesLength"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"requester","type":"address"}],"type":"error","name":"InvalidSigner"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"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":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","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}],"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":"bytes32","name":"ethBlockHash","type":"bytes32","indexed":false}],"type":"event","name":"EBCommitted","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":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"MBCommitted","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":"account","type":"address","indexed":false}],"type":"event","name":"Paused","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":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"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":"bool","name":"call","type":"bool"}]},{"internalType":"bytes[]","name":"events","type":"bytes[]"},{"internalType":"bytes[]","name":"ethEvents","type":"bytes[]"}]},{"internalType":"bytes32","name":"head","type":"bytes32"},{"internalType":"bytes32","name":"lastAdvancedEthBlock","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"bool","name":"hasAggregatedPublicKey","type":"bool"},{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"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"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithAbiInterfaceAndExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"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":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"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":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"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":"requestCodeValidation"},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_requester","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32[]","name":"_blobHashes","type":"bytes32[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v1","type":"uint8"},{"internalType":"bytes32","name":"_r1","type":"bytes32"},{"internalType":"bytes32","name":"_s1","type":"bytes32"},{"internalType":"uint8","name":"_v2","type":"uint8"},{"internalType":"bytes32","name":"_r2","type":"bytes32"},{"internalType":"bytes32","name":"_s2","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidationOnBehalf"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"uint256","name":"newBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationBaseFee"},{"inputs":[{"internalType":"uint256","name":"newExtraFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationExtraFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"},{"internalType":"uint16","name":"maxValidators","type":"uint16"},{"internalType":"uint256","name":"requestCodeValidationBaseFee","type":"uint256"},{"internalType":"uint256","name":"requestCodeValidationExtraFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"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":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"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":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.","returns":{"_0":"domainSeparator The domain separator."}},"areValidators(address[])":{"details":"Checks if the given addresses are all validators.","returns":{"_0":"areValidators `true` if all addresses are validators, `false` otherwise."}},"codeState(bytes32)":{"details":"Returns the state of code.","returns":{"_0":"codeState The state of the code."}},"codesStates(bytes32[])":{"details":"Returns the states of multiple codes.","returns":{"_0":"codesStates The states of the codes."}},"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[],bytes[],bytes[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":{"details":"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.","params":{"_batch":"The batch commitment data.","_signatureType":"The type of signature to validate.","_signatures":"The signatures for the batch commitment."}},"computeSettings()":{"details":"Returns the computation settings.","returns":{"_0":"computeSettings The computation settings."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createProgram(bytes32,bytes32,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterface(bytes32,bytes32,address,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"genesisBlockHash()":{"details":"Returns the hash of the genesis block.","returns":{"_0":"genesisBlockHash The hash of the genesis block."}},"genesisTimestamp()":{"details":"Returns the timestamp of the genesis block.","returns":{"_0":"genesisTimestamp The timestamp of the genesis block."}},"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":{"details":"Initializes the `Router` with the given parameters.","params":{"_aggregatedPublicKey":"The optional aggregated public key of the initial validators. Will be used in future.","_electionDuration":"The duration of an election in seconds.","_eraDuration":"The duration of an era in seconds.","_middleware":"The address of the middleware contract.","_mirror":"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.","_owner":"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.","_validationDelay":"The delay before validators can start validating in seconds.","_validators":"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.","_verifiableSecretSharingCommitment":"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.","_wrappedVara":"The address of the `WrappedVara` (WVARA) ERC20 token contract."}},"isValidator(address)":{"details":"Checks if the given address is a validator.","returns":{"_0":"isValidator `true` if the address is a validator, `false` otherwise."}},"latestCommittedBatchHash()":{"details":"Returns the hash of the latest committed batch.","returns":{"_0":"latestCommittedBatchHash The hash of the latest committed batch."}},"latestCommittedBatchTimestamp()":{"details":"Returns the timestamp of the latest committed batch.","returns":{"_0":"latestCommittedBatchTimestamp The timestamp of the latest committed batch."}},"lookupGenesisHash()":{"details":"Looks up the genesis hash from previous blocks."},"middleware()":{"details":"Returns the address of the middleware implementation.","returns":{"_0":"middleware The address of the middleware implementation."}},"mirrorImpl()":{"details":"Returns the address of the mirror implementation.","returns":{"_0":"mirrorImpl The address of the mirror implementation."}},"nonces(address)":{"details":"Returns the next unused nonce for an address."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pauses the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise.","returns":{"_0":"isPaused `true` if the contract is paused, `false` otherwise."}},"programCodeId(address)":{"details":"Returns the code ID of the given program.","returns":{"_0":"codeId The code ID of the program."}},"programsCodeIds(address[])":{"details":"Returns the code IDs of the given programs.","returns":{"_0":"codesIds The code IDs of the programs."}},"programsCount()":{"details":"Returns the count of programs.","returns":{"_0":"programsCount The count of programs."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":"","details":"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!"},"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."},"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.","params":{"_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter."}},"requestCodeValidationBaseFee()":{"details":"Returns the base fee for requesting code validation in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationBaseFee The base fee for requesting code validation."}},"requestCodeValidationExtraFee()":{"details":"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."}},"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.","params":{"_blobHashes":"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.","_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r1":"ECDSA signature parameter (for requestCodeValidation).","_r2":"ECDSA signature parameter (for permit).","_requester":"The address of the requester on behalf of whom the code validation is requested.","_s1":"ECDSA signature parameter (for requestCodeValidation).","_s2":"ECDSA signature parameter (for permit).","_v1":"ECDSA signature parameter (for requestCodeValidation).","_v2":"ECDSA signature parameter (for permit)."}},"setMirror(address)":{"details":"Sets the `Mirror` implementation address.","params":{"newMirror":"The new mirror implementation address."}},"setRequestCodeValidationBaseFee(uint256)":{"details":"Sets the base fee for requesting code validation in WVARA ERC20 token.","params":{"newBaseFee":"The new base fee for requesting code validation."}},"setRequestCodeValidationExtraFee(uint256)":{"details":"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","params":{"newExtraFee":"The new extra fee for requesting code validation on behalf of someone else."}},"signingThresholdFraction()":{"details":"Returns the signing threshold fraction.","returns":{"thresholdDenominator":"The denominator of the signing threshold fraction.","thresholdNumerator":"The numerator of the signing threshold fraction."}},"storageView()":{"details":"Returns the storage view of the contract storage.","returns":{"_0":"storageView The storage view of the contract storage."}},"timelines()":{"details":"Returns the timelines.","returns":{"_0":"timelines The timelines."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"details":"Unpauses the contract."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"validatedCodesCount()":{"details":"Returns the count of validated codes.","returns":{"_0":"validatedCodesCount The count of validated codes."}},"validators()":{"details":"Returns the list of current validators.","returns":{"_0":"validators The list of current validators."}},"validatorsAggregatedPublicKey()":{"details":"Returns the aggregated public key of the current validators.","returns":{"_0":"validatorsAggregatedPublicKey The aggregated public key of the current validators."}},"validatorsCount()":{"details":"Returns the count of current validators.","returns":{"_0":"validatorsCount The count of current validators."}},"validatorsThreshold()":{"details":"Returns the threshold number of validators required for a valid signature.","returns":{"_0":"threshold The threshold number of validators required for a valid signature."}},"validatorsVerifiableSecretSharingCommitment()":{"details":"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.","returns":{"_0":"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."}},"wrappedVara()":{"details":"Returns the address of the wrapped Vara implementation.","returns":{"_0":"wrappedVara The address of the wrapped Vara implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"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/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"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":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0x9fca36ab022343eeff0763a6d0e40f642b97d0097b128f6cc7d9c5c91c89cd8f","urls":["bzz-raw://bf82df3324a5e17f621708cb98fbffea22f3a23ea8a746313a579e3d4f400343","dweb:/ipfs/QmfNUD1pEWBkGeLUqhbFr68iscVYQwYHe2tX8CtaJmT9hA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f","urls":["bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036","dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7","urls":["bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3","dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70","urls":["bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b","dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x6cb9a64ad00a3c5f644b128cb61955f6db71b4cee3683773976ac19219fe2dc5","urls":["bzz-raw://6f6462067f8375d74d5d33b241c2185c9d2e992eeec88b753d6e3c5b1e0105d1","dweb:/ipfs/QmUcHxZPnPvAyNRgd1t9ieDhTTdimnhykr2Zp5Wg7H1wcS"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd","urls":["bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389","dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":82508,"exportedSymbols":{"Clones":[82903],"ClonesSmall":[82987],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84267],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74400],"IRouter":[74995],"IWrappedVara":[75011],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82507],"SSTORE2":[84723],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:49355:165","nodes":[{"id":79583,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79585,"nodeType":"ImportDirective","src":"100:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79584,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79587,"nodeType":"ImportDirective","src":"202:98:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79586,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79589,"nodeType":"ImportDirective","src":"301:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79588,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79591,"nodeType":"ImportDirective","src":"404:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79590,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79593,"nodeType":"ImportDirective","src":"545:111:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79592,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79595,"nodeType":"ImportDirective","src":"657:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79594,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79597,"nodeType":"ImportDirective","src":"746:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79596,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79599,"nodeType":"ImportDirective","src":"827:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79598,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79601,"nodeType":"ImportDirective","src":"902:75:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79600,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79603,"nodeType":"ImportDirective","src":"978:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79602,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79605,"nodeType":"ImportDirective","src":"1031:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79604,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79607,"nodeType":"ImportDirective","src":"1092:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79606,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79609,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79608,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79611,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":74401,"symbolAliases":[{"foreign":{"id":79610,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79613,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":74996,"symbolAliases":[{"foreign":{"id":79612,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74995,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79615,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":75012,"symbolAliases":[{"foreign":{"id":79614,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79617,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":82904,"symbolAliases":[{"foreign":{"id":79616,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82903,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79619,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":82988,"symbolAliases":[{"foreign":{"id":79618,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82987,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79621,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":84268,"symbolAliases":[{"foreign":{"id":79620,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79623,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82508,"sourceUnit":84724,"symbolAliases":[{"foreign":{"id":79622,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84723,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82507,"nodeType":"ContractDefinition","src":"1553:47875:165","nodes":[{"id":79640,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":79643,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":79646,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79644,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:17:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":79649,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79647,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2288:3:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":79652,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79650,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2366:5:165","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":79655,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:3:165","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":79658,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82507,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:66:165","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":79666,"nodeType":"FunctionDefinition","src":"2811:53:165","nodes":[],"body":{"id":79665,"nodeType":"Block","src":"2825:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79662,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2835:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2835:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79664,"nodeType":"ExpressionStatement","src":"2835:22:165"}]},"documentation":{"id":79659,"nodeType":"StructuredDocumentation","src":"2743:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79660,"nodeType":"ParameterList","parameters":[],"src":"2822:2:165"},"returnParameters":{"id":79661,"nodeType":"ParameterList","parameters":[],"src":"2825:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79871,"nodeType":"FunctionDefinition","src":"4048:2520:165","nodes":[],"body":{"id":79870,"nodeType":"Block","src":"4463:2105:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79695,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79669,"src":"4488:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79694,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4473:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79697,"nodeType":"ExpressionStatement","src":"4473:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79698,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4505:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79700,"nodeType":"ExpressionStatement","src":"4505:17:165"},{"expression":{"arguments":[{"id":79702,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79646,"src":"4546:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79703,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79649,"src":"4559:14:165","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":79701,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4532:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79705,"nodeType":"ExpressionStatement","src":"4532:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79706,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4584:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4584:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79708,"nodeType":"ExpressionStatement","src":"4584:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79709,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4609:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4609:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79711,"nodeType":"ExpressionStatement","src":"4609:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79713,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4821:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4827:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4821:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4821:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79717,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"4842:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4813:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79720,"nodeType":"ExpressionStatement","src":"4813:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79722,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79679,"src":"4879:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4879:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79725,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74552,"src":"4902:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4902:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4871:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79728,"nodeType":"ExpressionStatement","src":"4871:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79730,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79677,"src":"4946:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79731,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79679,"src":"4961:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4946:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79733,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74555,"src":"4980:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4980:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4938:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79736,"nodeType":"ExpressionStatement","src":"4938:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79738,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79681,"src":"5171:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79739,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79677,"src":"5191:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79740,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79679,"src":"5206:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5191:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79742,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5190:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5227:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5190:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5171:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79746,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74560,"src":"5231:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79737,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5163:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79749,"nodeType":"ExpressionStatement","src":"5163:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5282:25:165","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":79750,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82447,"src":"5266:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79753,"nodeType":"ExpressionStatement","src":"5266:42:165"},{"assignments":[79756],"declarations":[{"constant":false,"id":79756,"mutability":"mutable","name":"router","nameLocation":"5334:6:165","nodeType":"VariableDeclaration","scope":79870,"src":"5318:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79755,"nodeType":"UserDefinedTypeName","pathNode":{"id":79754,"name":"Storage","nameLocations":["5318:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"5318:7:165"},"referencedDeclaration":74495,"src":"5318:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79759,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79757,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"5343:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5343:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5318:34:165"},{"expression":{"id":79766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79760,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5363:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5370:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"5363:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79763,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"5385:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5390:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83719,"src":"5385:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83234_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5385:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5363:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79767,"nodeType":"ExpressionStatement","src":"5363:39:165"},{"expression":{"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79768,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5412:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5419:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"5412:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79773,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79671,"src":"5452:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79774,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79673,"src":"5461:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79775,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"5475:11:165","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":79771,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"5435:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5440:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":83105,"src":"5435:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$83105_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5412:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79778,"nodeType":"ExpressionStatement","src":"5412:75:165"},{"expression":{"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79779,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5497:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5504:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"5497:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5523:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83340,"src":"5497:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79784,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"5544:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5549:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"5544:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5497:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79787,"nodeType":"ExpressionStatement","src":"5497:82:165"},{"expression":{"id":79795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79788,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5589:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5596:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"5589:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83342,"src":"5589:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79793,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"5638:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5643:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":83030,"src":"5638:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5589:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79796,"nodeType":"ExpressionStatement","src":"5589:86:165"},{"expression":{"id":79803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79797,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5685:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5692:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74486,"src":"5685:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79800,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"5710:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5715:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83696,"src":"5710:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83226_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5685:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79804,"nodeType":"ExpressionStatement","src":"5685:58:165"},{"expression":{"id":79814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79805,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5753:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5760:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"5753:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79810,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79677,"src":"5787:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79811,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79679,"src":"5801:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79812,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79681,"src":"5820:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79808,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"5772:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5777:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83337,"src":"5772:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83337_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5753:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79815,"nodeType":"ExpressionStatement","src":"5753:84:165"},{"expression":{"id":79826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79816,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5847:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5854:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"5847:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5867:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83276,"src":"5847:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79823,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79689,"src":"5890:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5902:6:165","memberName":"length","nodeType":"MemberAccess","src":"5890:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5883:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79821,"name":"uint16","nodeType":"ElementaryTypeName","src":"5883:6:165","typeDescriptions":{}}},"id":79825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5883:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5847:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79827,"nodeType":"ExpressionStatement","src":"5847:62:165"},{"assignments":[79829],"declarations":[{"constant":false,"id":79829,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5928:14:165","nodeType":"VariableDeclaration","scope":79870,"src":"5920:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79828,"name":"uint256","nodeType":"ElementaryTypeName","src":"5920:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79837,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5945:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79832,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79673,"src":"5964:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79831,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"5951:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":79833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":79834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5978:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"5951:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5945:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5920:68:165"},{"expression":{"id":79846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79838,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"5998:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6005:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"5998:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6018:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"5998:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79843,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79652,"src":"6049:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79844,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79829,"src":"6092:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6049:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79847,"nodeType":"ExpressionStatement","src":"5998:108:165"},{"expression":{"id":79856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79848,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"6116:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6123:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"6116:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6136:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83282,"src":"6116:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79853,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79655,"src":"6168:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79854,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79829,"src":"6212:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6168:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6116:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79857,"nodeType":"ExpressionStatement","src":"6116:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79859,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79756,"src":"6308:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6315:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"6308:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6334:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83345,"src":"6308:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":79862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6359:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":79863,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79684,"src":"6377:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79864,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"6411:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79865,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79689,"src":"6459:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79866,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6484:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6490:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6484:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83082_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79858,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82394,"src":"6278:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$83082_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$83061_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:231:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79869,"nodeType":"ExpressionStatement","src":"6278:231:165"}]},"documentation":{"id":79667,"nodeType":"StructuredDocumentation","src":"2870:1173:165","text":" @dev Initializes the `Router` with the given parameters.\n @param _owner The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\n @param _mirror The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\n @param _wrappedVara The address of the `WrappedVara` (WVARA) ERC20 token contract.\n @param _middleware The address of the middleware contract.\n @param _eraDuration The duration of an era in seconds.\n @param _electionDuration The duration of an election in seconds.\n @param _validationDelay The delay before validators can start validating in seconds.\n @param _aggregatedPublicKey The optional aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\n @param _validators The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures,\n so the list of validators is used for signature verification."},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":79692,"kind":"modifierInvocation","modifierName":{"id":79691,"name":"initializer","nameLocations":["4451:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4451:11:165"},"nodeType":"ModifierInvocation","src":"4451:11:165"}],"name":"initialize","nameLocation":"4057:10:165","parameters":{"id":79690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79669,"mutability":"mutable","name":"_owner","nameLocation":"4085:6:165","nodeType":"VariableDeclaration","scope":79871,"src":"4077:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79668,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79671,"mutability":"mutable","name":"_mirror","nameLocation":"4109:7:165","nodeType":"VariableDeclaration","scope":79871,"src":"4101:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79670,"name":"address","nodeType":"ElementaryTypeName","src":"4101:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79673,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4134:12:165","nodeType":"VariableDeclaration","scope":79871,"src":"4126:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79672,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79675,"mutability":"mutable","name":"_middleware","nameLocation":"4164:11:165","nodeType":"VariableDeclaration","scope":79871,"src":"4156:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79674,"name":"address","nodeType":"ElementaryTypeName","src":"4156:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79677,"mutability":"mutable","name":"_eraDuration","nameLocation":"4193:12:165","nodeType":"VariableDeclaration","scope":79871,"src":"4185:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79676,"name":"uint256","nodeType":"ElementaryTypeName","src":"4185:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79679,"mutability":"mutable","name":"_electionDuration","nameLocation":"4223:17:165","nodeType":"VariableDeclaration","scope":79871,"src":"4215:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79678,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79681,"mutability":"mutable","name":"_validationDelay","nameLocation":"4258:16:165","nodeType":"VariableDeclaration","scope":79871,"src":"4250:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79680,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79684,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4318:20:165","nodeType":"VariableDeclaration","scope":79871,"src":"4284:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79683,"nodeType":"UserDefinedTypeName","pathNode":{"id":79682,"name":"Gear.AggregatedPublicKey","nameLocations":["4284:4:165","4289:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83061,"src":"4284:24:165"},"referencedDeclaration":83061,"src":"4284:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79686,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4363:34:165","nodeType":"VariableDeclaration","scope":79871,"src":"4348:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79685,"name":"bytes","nodeType":"ElementaryTypeName","src":"4348:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79689,"mutability":"mutable","name":"_validators","nameLocation":"4426:11:165","nodeType":"VariableDeclaration","scope":79871,"src":"4407:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79687,"name":"address","nodeType":"ElementaryTypeName","src":"4407:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79688,"nodeType":"ArrayTypeName","src":"4407:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4067:376:165"},"returnParameters":{"id":79693,"nodeType":"ParameterList","parameters":[],"src":"4463:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79966,"nodeType":"FunctionDefinition","src":"6888:3024:165","nodes":[],"body":{"id":79965,"nodeType":"Block","src":"6946:2966:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79881,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9219:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9219:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79880,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9204:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79884,"nodeType":"ExpressionStatement","src":"9204:23:165"},{"expression":{"arguments":[{"id":79886,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79646,"src":"9251:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79887,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79649,"src":"9264:14:165","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":79885,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9237:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79889,"nodeType":"ExpressionStatement","src":"9237:42:165"},{"assignments":[79892],"declarations":[{"constant":false,"id":79892,"mutability":"mutable","name":"router","nameLocation":"9306:6:165","nodeType":"VariableDeclaration","scope":79965,"src":"9290:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79891,"nodeType":"UserDefinedTypeName","pathNode":{"id":79890,"name":"Storage","nameLocations":["9290:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"9290:7:165"},"referencedDeclaration":74495,"src":"9290:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79895,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79893,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"9315:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9315:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9290:34:165"},{"expression":{"id":79902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79896,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9334:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9341:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"9334:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79899,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"9356:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9361:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83719,"src":"9356:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83234_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9334:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79903,"nodeType":"ExpressionStatement","src":"9334:39:165"},{"expression":{"id":79915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79904,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9383:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9390:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"9383:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9452:1:165","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":79910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9444:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9444:7:165","typeDescriptions":{}}},"id":79912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9444:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9467:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":79907,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"9413:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9418:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83220,"src":"9413:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83220_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9438:4:165","9456:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9413:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9383:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79916,"nodeType":"ExpressionStatement","src":"9383:87:165"},{"expression":{"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79917,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9480:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9487:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"9480:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9500:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83276,"src":"9480:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79926,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9549:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79924,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"9523:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9528:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"9523:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9523:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9557:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"9523:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:6:165","memberName":"length","nodeType":"MemberAccess","src":"9523:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79922,"name":"uint16","nodeType":"ElementaryTypeName","src":"9516:6:165","typeDescriptions":{}}},"id":79930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9480:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79932,"nodeType":"ExpressionStatement","src":"9480:89:165"},{"assignments":[79934],"declarations":[{"constant":false,"id":79934,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9587:14:165","nodeType":"VariableDeclaration","scope":79965,"src":"9579:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79933,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79944,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9604:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":79937,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9630:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"9623:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9644:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"9623:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79936,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"9610:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":79940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":79941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9657:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9610:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9604:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9579:88:165"},{"expression":{"id":79953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79945,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9677:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9684:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"9677:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9697:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"9677:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79950,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79652,"src":"9728:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79951,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79934,"src":"9771:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9728:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9677:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79954,"nodeType":"ExpressionStatement","src":"9677:108:165"},{"expression":{"id":79963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79955,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79892,"src":"9795:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9802:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"9795:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9815:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83282,"src":"9795:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79960,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79655,"src":"9847:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79961,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79934,"src":"9891:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9847:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9795:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79964,"nodeType":"ExpressionStatement","src":"9795:110:165"}]},"documentation":{"id":79872,"nodeType":"StructuredDocumentation","src":"6574:309:165","text":" @dev Reinitializes the `Router` to set up new storage layout.\n This function is intended to be called during an upgrade/wipe and can contain any logic.\n NOTE: Don't forget to bump `reinitializer(version)` in modifier!\n @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79875,"kind":"modifierInvocation","modifierName":{"id":79874,"name":"onlyOwner","nameLocations":["6919:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6919:9:165"},"nodeType":"ModifierInvocation","src":"6919:9:165"},{"arguments":[{"hexValue":"35","id":79877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6943:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79878,"kind":"modifierInvocation","modifierName":{"id":79876,"name":"reinitializer","nameLocations":["6929:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"6929:13:165"},"nodeType":"ModifierInvocation","src":"6929:16:165"}],"name":"reinitialize","nameLocation":"6897:12:165","parameters":{"id":79873,"nodeType":"ParameterList","parameters":[],"src":"6909:2:165"},"returnParameters":{"id":79879,"nodeType":"ParameterList","parameters":[],"src":"6946:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79976,"nodeType":"FunctionDefinition","src":"10077:84:165","nodes":[],"body":{"id":79975,"nodeType":"Block","src":"10159:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79967,"nodeType":"StructuredDocumentation","src":"9918:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":79973,"kind":"modifierInvocation","modifierName":{"id":79972,"name":"onlyOwner","nameLocations":["10149:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10149:9:165"},"nodeType":"ModifierInvocation","src":"10149:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10086:17:165","overrides":{"id":79971,"nodeType":"OverrideSpecifier","overrides":[],"src":"10140:8:165"},"parameters":{"id":79970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79969,"mutability":"mutable","name":"newImplementation","nameLocation":"10112:17:165","nodeType":"VariableDeclaration","scope":79976,"src":"10104:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79968,"name":"address","nodeType":"ElementaryTypeName","src":"10104:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10103:27:165"},"returnParameters":{"id":79974,"nodeType":"ParameterList","parameters":[],"src":"10159:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80030,"nodeType":"FunctionDefinition","src":"10333:948:165","nodes":[],"body":{"id":80029,"nodeType":"Block","src":"10397:884:165","nodes":[],"statements":[{"assignments":[79985],"declarations":[{"constant":false,"id":79985,"mutability":"mutable","name":"router","nameLocation":"10423:6:165","nodeType":"VariableDeclaration","scope":80029,"src":"10407:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79984,"nodeType":"UserDefinedTypeName","pathNode":{"id":79983,"name":"Storage","nameLocations":["10407:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"10407:7:165"},"referencedDeclaration":74495,"src":"10407:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79988,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79986,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"10432:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10432:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10407:34:165"},{"assignments":[79993],"declarations":[{"constant":false,"id":79993,"mutability":"mutable","name":"validationSettings","nameLocation":"10486:18:165","nodeType":"VariableDeclaration","scope":80029,"src":"10451:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79992,"nodeType":"UserDefinedTypeName","pathNode":{"id":79991,"name":"Gear.ValidationSettingsView","nameLocations":["10451:4:165","10456:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83361,"src":"10451:27:165"},"referencedDeclaration":83361,"src":"10451:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79999,"initialValue":{"arguments":[{"expression":{"id":79996,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10519:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10526:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"10519:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79994,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"10507:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":79995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10512:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84266,"src":"10507:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83349_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83361_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10507:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10451:94:165"},{"expression":{"arguments":[{"expression":{"id":80001,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10602:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10609:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"10602:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":80003,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10657:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10664:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"10657:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":80005,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10713:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10720:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"10713:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":80007,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79993,"src":"10767:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":80008,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10823:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74486,"src":"10816:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":80010,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10863:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10870:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"10863:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":80012,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10908:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10915:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"10908:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10928:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"10908:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80015,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"10976:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10983:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"10976:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10996:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83273,"src":"10976:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80018,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"11044:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11051:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"11044:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11064:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83276,"src":"11044:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":80021,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"11121:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11128:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"11121:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11141:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"11121:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80024,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79985,"src":"11214:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11221:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"11214:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11234:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83282,"src":"11214:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83361_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80000,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74462,"src":"10562:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74462_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":80027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10588:12:165","10635:20:165","10698:13:165","10747:18:165","10799:15:165","10852:9:165","10893:13:165","10955:19:165","11029:13:165","11091:28:165","11183:29:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10562:712:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74462_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79982,"id":80028,"nodeType":"Return","src":"10555:719:165"}]},"baseFunctions":[74653],"documentation":{"id":79977,"nodeType":"StructuredDocumentation","src":"10186:142:165","text":" @dev Returns the storage view of the contract storage.\n @return storageView The storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"10342:11:165","parameters":{"id":79978,"nodeType":"ParameterList","parameters":[],"src":"10353:2:165"},"returnParameters":{"id":79982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80030,"src":"10377:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74462_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79980,"nodeType":"UserDefinedTypeName","pathNode":{"id":79979,"name":"StorageView","nameLocations":["10377:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74462,"src":"10377:11:165"},"referencedDeclaration":74462,"src":"10377:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74462_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10376:20:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80042,"nodeType":"FunctionDefinition","src":"11417:109:165","nodes":[],"body":{"id":80041,"nodeType":"Block","src":"11475:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80036,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"11492:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11502:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"11492:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11515:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"11492:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80035,"id":80040,"nodeType":"Return","src":"11485:34:165"}]},"baseFunctions":[74659],"documentation":{"id":80031,"nodeType":"StructuredDocumentation","src":"11287:125:165","text":" @dev Returns the hash of the genesis block.\n @return genesisBlockHash The hash of the genesis block."},"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"11426:16:165","parameters":{"id":80032,"nodeType":"ParameterList","parameters":[],"src":"11442:2:165"},"returnParameters":{"id":80035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80042,"src":"11466:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11466:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11465:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80054,"nodeType":"FunctionDefinition","src":"11672:113:165","nodes":[],"body":{"id":80053,"nodeType":"Block","src":"11729:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80048,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"11746:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11746:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11756:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"11746:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11769:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"11746:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":80047,"id":80052,"nodeType":"Return","src":"11739:39:165"}]},"baseFunctions":[74665],"documentation":{"id":80043,"nodeType":"StructuredDocumentation","src":"11532:135:165","text":" @dev Returns the timestamp of the genesis block.\n @return genesisTimestamp The timestamp of the genesis block."},"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"11681:16:165","parameters":{"id":80044,"nodeType":"ParameterList","parameters":[],"src":"11697:2:165"},"returnParameters":{"id":80047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80054,"src":"11721:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":80045,"name":"uint48","nodeType":"ElementaryTypeName","src":"11721:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11720:8:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80066,"nodeType":"FunctionDefinition","src":"11947:125:165","nodes":[],"body":{"id":80065,"nodeType":"Block","src":"12013:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80060,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"12030:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12030:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12040:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"12030:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":80063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12061:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83217,"src":"12030:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80059,"id":80064,"nodeType":"Return","src":"12023:42:165"}]},"baseFunctions":[74671],"documentation":{"id":80055,"nodeType":"StructuredDocumentation","src":"11791:151:165","text":" @dev Returns the hash of the latest committed batch.\n @return latestCommittedBatchHash The hash of the latest committed batch."},"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"11956:24:165","parameters":{"id":80056,"nodeType":"ParameterList","parameters":[],"src":"11980:2:165"},"returnParameters":{"id":80059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80066,"src":"12004:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12003:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80078,"nodeType":"FunctionDefinition","src":"12249:134:165","nodes":[],"body":{"id":80077,"nodeType":"Block","src":"12319:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80072,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"12336:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12346:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"12336:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":80075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12367:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83219,"src":"12336:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":80071,"id":80076,"nodeType":"Return","src":"12329:47:165"}]},"baseFunctions":[74677],"documentation":{"id":80067,"nodeType":"StructuredDocumentation","src":"12078:166:165","text":" @dev Returns the timestamp of the latest committed batch.\n @return latestCommittedBatchTimestamp The timestamp of the latest committed batch."},"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"12258:29:165","parameters":{"id":80068,"nodeType":"ParameterList","parameters":[],"src":"12287:2:165"},"returnParameters":{"id":80071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80078,"src":"12311:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":80069,"name":"uint48","nodeType":"ElementaryTypeName","src":"12311:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12310:8:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80090,"nodeType":"FunctionDefinition","src":"12535:106:165","nodes":[],"body":{"id":80089,"nodeType":"Block","src":"12587:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80084,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"12604:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12604:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12614:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"12604:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12628:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":83098,"src":"12604:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80083,"id":80088,"nodeType":"Return","src":"12597:37:165"}]},"baseFunctions":[74683],"documentation":{"id":80079,"nodeType":"StructuredDocumentation","src":"12389:141:165","text":" @dev Returns the address of the mirror implementation.\n @return mirrorImpl The address of the mirror implementation."},"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"12544:10:165","parameters":{"id":80080,"nodeType":"ParameterList","parameters":[],"src":"12554:2:165"},"returnParameters":{"id":80083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80090,"src":"12578:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80081,"name":"address","nodeType":"ElementaryTypeName","src":"12578:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12577:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80102,"nodeType":"FunctionDefinition","src":"12806:112:165","nodes":[],"body":{"id":80101,"nodeType":"Block","src":"12859:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80096,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"12876:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12876:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12886:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"12876:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12900:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"12876:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80095,"id":80100,"nodeType":"Return","src":"12869:42:165"}]},"baseFunctions":[74689],"documentation":{"id":80091,"nodeType":"StructuredDocumentation","src":"12647:154:165","text":" @dev Returns the address of the wrapped Vara implementation.\n @return wrappedVara The address of the wrapped Vara implementation."},"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"12815:11:165","parameters":{"id":80092,"nodeType":"ParameterList","parameters":[],"src":"12826:2:165"},"returnParameters":{"id":80095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80102,"src":"12850:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80093,"name":"address","nodeType":"ElementaryTypeName","src":"12850:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12849:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80114,"nodeType":"FunctionDefinition","src":"13078:110:165","nodes":[],"body":{"id":80113,"nodeType":"Block","src":"13130:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80108,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"13147:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13147:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13157:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"13147:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13171:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":83104,"src":"13147:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80107,"id":80112,"nodeType":"Return","src":"13140:41:165"}]},"baseFunctions":[74695],"documentation":{"id":80103,"nodeType":"StructuredDocumentation","src":"12924:149:165","text":" @dev Returns the address of the middleware implementation.\n @return middleware The address of the middleware implementation."},"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"13087:10:165","parameters":{"id":80104,"nodeType":"ParameterList","parameters":[],"src":"13097:2:165"},"returnParameters":{"id":80107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80114,"src":"13121:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80105,"name":"address","nodeType":"ElementaryTypeName","src":"13121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13120:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80129,"nodeType":"FunctionDefinition","src":"13381:175:165","nodes":[],"body":{"id":80128,"nodeType":"Block","src":"13476:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80123,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"13519:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13519:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80121,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"13493:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13498:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"13493:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13493:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13530:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"13493:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":80120,"id":80127,"nodeType":"Return","src":"13486:63:165"}]},"baseFunctions":[74702],"documentation":{"id":80115,"nodeType":"StructuredDocumentation","src":"13194:182:165","text":" @dev Returns the aggregated public key of the current validators.\n @return validatorsAggregatedPublicKey The aggregated public key of the current validators."},"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"13390:29:165","parameters":{"id":80116,"nodeType":"ParameterList","parameters":[],"src":"13419:2:165"},"returnParameters":{"id":80120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80129,"src":"13443:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":80118,"nodeType":"UserDefinedTypeName","pathNode":{"id":80117,"name":"Gear.AggregatedPublicKey","nameLocations":["13443:4:165","13448:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83061,"src":"13443:24:165"},"referencedDeclaration":83061,"src":"13443:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13442:33:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80146,"nodeType":"FunctionDefinition","src":"14022:207:165","nodes":[],"body":{"id":80145,"nodeType":"Block","src":"14114:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80139,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"14170:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14170:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80137,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"14144:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14149:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"14144:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14144:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14181:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":83069,"src":"14144:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":80135,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84723,"src":"14131:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84723_$","typeString":"type(library SSTORE2)"}},"id":80136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14139:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84696,"src":"14131:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":80143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14131:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":80134,"id":80144,"nodeType":"Return","src":"14124:98:165"}]},"baseFunctions":[74708],"documentation":{"id":80130,"nodeType":"StructuredDocumentation","src":"13562:455:165","text":" @dev Returns the verifiable secret sharing commitment of the current validators.\n This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct.\n See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\n @return validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."},"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"14031:43:165","parameters":{"id":80131,"nodeType":"ParameterList","parameters":[],"src":"14074:2:165"},"returnParameters":{"id":80134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80146,"src":"14100:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80132,"name":"bytes","nodeType":"ElementaryTypeName","src":"14100:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14099:14:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80193,"nodeType":"FunctionDefinition","src":"14401:375:165","nodes":[],"body":{"id":80192,"nodeType":"Block","src":"14483:293:165","nodes":[],"statements":[{"assignments":[80159],"declarations":[{"constant":false,"id":80159,"mutability":"mutable","name":"_currentValidators","nameLocation":"14517:18:165","nodeType":"VariableDeclaration","scope":80192,"src":"14493:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80158,"nodeType":"UserDefinedTypeName","pathNode":{"id":80157,"name":"Gear.Validators","nameLocations":["14493:4:165","14498:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"14493:15:165"},"referencedDeclaration":83082,"src":"14493:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80165,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80162,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"14564:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14564:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80160,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"14538:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14543:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"14538:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14538:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14493:81:165"},{"body":{"id":80188,"nodeType":"Block","src":"14634:114:165","statements":[{"condition":{"id":80183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14652:39:165","subExpression":{"baseExpression":{"expression":{"id":80177,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80159,"src":"14653:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14672:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"14653:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80182,"indexExpression":{"baseExpression":{"id":80179,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80150,"src":"14676:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80181,"indexExpression":{"id":80180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80167,"src":"14688:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14676:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14653:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80187,"nodeType":"IfStatement","src":"14648:90:165","trueBody":{"id":80186,"nodeType":"Block","src":"14693:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14718:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80154,"id":80185,"nodeType":"Return","src":"14711:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80170,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80167,"src":"14605:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80171,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80150,"src":"14609:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14621:6:165","memberName":"length","nodeType":"MemberAccess","src":"14609:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14605:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80189,"initializationExpression":{"assignments":[80167],"declarations":[{"constant":false,"id":80167,"mutability":"mutable","name":"i","nameLocation":"14598:1:165","nodeType":"VariableDeclaration","scope":80189,"src":"14590:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80166,"name":"uint256","nodeType":"ElementaryTypeName","src":"14590:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80169,"initialValue":{"hexValue":"30","id":80168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14602:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14590:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14629:3:165","subExpression":{"id":80174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80167,"src":"14629:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80176,"nodeType":"ExpressionStatement","src":"14629:3:165"},"nodeType":"ForStatement","src":"14585:163:165"},{"expression":{"hexValue":"74727565","id":80190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14765:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80154,"id":80191,"nodeType":"Return","src":"14758:11:165"}]},"baseFunctions":[74717],"documentation":{"id":80147,"nodeType":"StructuredDocumentation","src":"14235:161:165","text":" @dev Checks if the given addresses are all validators.\n @return areValidators `true` if all addresses are validators, `false` otherwise."},"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"14410:13:165","parameters":{"id":80151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80150,"mutability":"mutable","name":"_validators","nameLocation":"14443:11:165","nodeType":"VariableDeclaration","scope":80193,"src":"14424:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80148,"name":"address","nodeType":"ElementaryTypeName","src":"14424:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80149,"nodeType":"ArrayTypeName","src":"14424:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14423:32:165"},"returnParameters":{"id":80154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80193,"src":"14477:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80152,"name":"bool","nodeType":"ElementaryTypeName","src":"14477:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14476:6:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80211,"nodeType":"FunctionDefinition","src":"14938:144:165","nodes":[],"body":{"id":80210,"nodeType":"Block","src":"15006:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80203,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"15049:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15049:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80201,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"15023:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15028:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"15023:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15023:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15060:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"15023:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80208,"indexExpression":{"id":80207,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80196,"src":"15064:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15023:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80200,"id":80209,"nodeType":"Return","src":"15016:59:165"}]},"baseFunctions":[74725],"documentation":{"id":80194,"nodeType":"StructuredDocumentation","src":"14782:151:165","text":" @dev Checks if the given address is a validator.\n @return isValidator `true` if the address is a validator, `false` otherwise."},"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"14947:11:165","parameters":{"id":80197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80196,"mutability":"mutable","name":"_validator","nameLocation":"14967:10:165","nodeType":"VariableDeclaration","scope":80211,"src":"14959:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80195,"name":"address","nodeType":"ElementaryTypeName","src":"14959:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14958:20:165"},"returnParameters":{"id":80200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80211,"src":"15000:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80198,"name":"bool","nodeType":"ElementaryTypeName","src":"15000:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14999:6:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80236,"nodeType":"FunctionDefinition","src":"15326:285:165","nodes":[],"body":{"id":80235,"nodeType":"Block","src":"15441:170:165","nodes":[],"statements":[{"assignments":[80223],"declarations":[{"constant":false,"id":80223,"mutability":"mutable","name":"router","nameLocation":"15475:6:165","nodeType":"VariableDeclaration","scope":80235,"src":"15451:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80222,"nodeType":"UserDefinedTypeName","pathNode":{"id":80221,"name":"IRouter.Storage","nameLocations":["15451:7:165","15459:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"15451:15:165"},"referencedDeclaration":74495,"src":"15451:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80226,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80224,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"15484:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15484:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15451:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80227,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80223,"src":"15511:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15518:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"15511:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15537:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83340,"src":"15511:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80230,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80223,"src":"15557:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15564:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"15557:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15583:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83342,"src":"15557:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80233,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15510:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80218,"id":80234,"nodeType":"Return","src":"15503:101:165"}]},"baseFunctions":[74733],"documentation":{"id":80212,"nodeType":"StructuredDocumentation","src":"15088:233:165","text":" @dev Returns the signing threshold fraction.\n @return thresholdNumerator The numerator of the signing threshold fraction.\n @return thresholdDenominator The denominator of the signing threshold fraction."},"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"15335:24:165","parameters":{"id":80213,"nodeType":"ParameterList","parameters":[],"src":"15359:2:165"},"returnParameters":{"id":80218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80215,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15391:18:165","nodeType":"VariableDeclaration","scope":80236,"src":"15383:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80214,"name":"uint128","nodeType":"ElementaryTypeName","src":"15383:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80217,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15419:20:165","nodeType":"VariableDeclaration","scope":80236,"src":"15411:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80216,"name":"uint128","nodeType":"ElementaryTypeName","src":"15411:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15382:58:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80251,"nodeType":"FunctionDefinition","src":"15743:126:165","nodes":[],"body":{"id":80250,"nodeType":"Block","src":"15804:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80245,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"15847:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15847:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80243,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"15821:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15826:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"15821:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15821:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15858:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"15821:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80242,"id":80249,"nodeType":"Return","src":"15814:48:165"}]},"baseFunctions":[74740],"documentation":{"id":80237,"nodeType":"StructuredDocumentation","src":"15617:121:165","text":" @dev Returns the list of current validators.\n @return validators The list of current validators."},"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"15752:10:165","parameters":{"id":80238,"nodeType":"ParameterList","parameters":[],"src":"15762:2:165"},"returnParameters":{"id":80242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80241,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80251,"src":"15786:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80239,"name":"address","nodeType":"ElementaryTypeName","src":"15786:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80240,"nodeType":"ArrayTypeName","src":"15786:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15785:18:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80266,"nodeType":"FunctionDefinition","src":"16008:129:165","nodes":[],"body":{"id":80265,"nodeType":"Block","src":"16065:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80259,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"16108:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16108:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80257,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"16082:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"16082:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16082:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16119:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"16082:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:6:165","memberName":"length","nodeType":"MemberAccess","src":"16082:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80256,"id":80264,"nodeType":"Return","src":"16075:55:165"}]},"baseFunctions":[74746],"documentation":{"id":80252,"nodeType":"StructuredDocumentation","src":"15875:128:165","text":" @dev Returns the count of current validators.\n @return validatorsCount The count of current validators."},"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"16017:15:165","parameters":{"id":80253,"nodeType":"ParameterList","parameters":[],"src":"16032:2:165"},"returnParameters":{"id":80256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80255,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80266,"src":"16056:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80254,"name":"uint256","nodeType":"ElementaryTypeName","src":"16056:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16055:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80297,"nodeType":"FunctionDefinition","src":"16338:348:165","nodes":[],"body":{"id":80296,"nodeType":"Block","src":"16399:287:165","nodes":[],"statements":[{"assignments":[80276],"declarations":[{"constant":false,"id":80276,"mutability":"mutable","name":"router","nameLocation":"16433:6:165","nodeType":"VariableDeclaration","scope":80296,"src":"16409:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80275,"nodeType":"UserDefinedTypeName","pathNode":{"id":80274,"name":"IRouter.Storage","nameLocations":["16409:7:165","16417:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"16409:15:165"},"referencedDeclaration":74495,"src":"16409:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80279,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80277,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"16442:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16442:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16409:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80284,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80276,"src":"16532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80282,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"16506:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16511:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"16506:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16506:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16540:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"16506:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16545:6:165","memberName":"length","nodeType":"MemberAccess","src":"16506:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80288,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80276,"src":"16565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16572:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"16565:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16591:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83340,"src":"16565:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80291,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80276,"src":"16623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16630:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74482,"src":"16623:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83349_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16649:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83342,"src":"16623:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":80280,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"16468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16473:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":84154,"src":"16468:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":80294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80271,"id":80295,"nodeType":"Return","src":"16461:218:165"}]},"baseFunctions":[74752],"documentation":{"id":80267,"nodeType":"StructuredDocumentation","src":"16143:190:165","text":" @dev Returns the threshold number of validators required for a valid signature.\n @return threshold The threshold number of validators required for a valid signature."},"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"16347:19:165","parameters":{"id":80268,"nodeType":"ParameterList","parameters":[],"src":"16366:2:165"},"returnParameters":{"id":80271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80297,"src":"16390:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80269,"name":"uint256","nodeType":"ElementaryTypeName","src":"16390:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16389:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80311,"nodeType":"FunctionDefinition","src":"16858:122:165","nodes":[],"body":{"id":80310,"nodeType":"Block","src":"16942:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80306,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16959:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82507_$","typeString":"type(contract super Router)"}},"id":80307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16965:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"16959:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80305,"id":80309,"nodeType":"Return","src":"16952:21:165"}]},"baseFunctions":[43784,74758],"documentation":{"id":80298,"nodeType":"StructuredDocumentation","src":"16692:161:165","text":" @dev Returns true if the contract is paused, and false otherwise.\n @return isPaused `true` if the contract is paused, `false` otherwise."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"16867:6:165","overrides":{"id":80302,"nodeType":"OverrideSpecifier","overrides":[{"id":80300,"name":"IRouter","nameLocations":["16897:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74995,"src":"16897:7:165"},{"id":80301,"name":"PausableUpgradeable","nameLocations":["16906:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"16906:19:165"}],"src":"16888:38:165"},"parameters":{"id":80299,"nodeType":"ParameterList","parameters":[],"src":"16873:2:165"},"returnParameters":{"id":80305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80311,"src":"16936:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80303,"name":"bool","nodeType":"ElementaryTypeName","src":"16936:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16935:6:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80323,"nodeType":"FunctionDefinition","src":"17105:130:165","nodes":[],"body":{"id":80322,"nodeType":"Block","src":"17186:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80318,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"17203:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17203:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17213:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74486,"src":"17203:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80317,"id":80321,"nodeType":"Return","src":"17196:32:165"}]},"baseFunctions":[74765],"documentation":{"id":80312,"nodeType":"StructuredDocumentation","src":"16986:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17114:15:165","parameters":{"id":80313,"nodeType":"ParameterList","parameters":[],"src":"17129:2:165"},"returnParameters":{"id":80317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80323,"src":"17153:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80315,"nodeType":"UserDefinedTypeName","pathNode":{"id":80314,"name":"Gear.ComputationSettings","nameLocations":["17153:4:165","17158:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83226,"src":"17153:24:165"},"referencedDeclaration":83226,"src":"17153:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83226_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17152:33:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80340,"nodeType":"FunctionDefinition","src":"17344:134:165","nodes":[],"body":{"id":80339,"nodeType":"Block","src":"17417:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80332,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"17434:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17434:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17444:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"17434:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17457:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"17434:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80337,"indexExpression":{"id":80336,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80326,"src":"17463:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17434:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80331,"id":80338,"nodeType":"Return","src":"17427:44:165"}]},"baseFunctions":[74774],"documentation":{"id":80324,"nodeType":"StructuredDocumentation","src":"17241:98:165","text":" @dev Returns the state of code.\n @return codeState The state of the code."},"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"17353:9:165","parameters":{"id":80327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80326,"mutability":"mutable","name":"_codeId","nameLocation":"17371:7:165","nodeType":"VariableDeclaration","scope":80340,"src":"17363:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17363:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17362:17:165"},"returnParameters":{"id":80331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80340,"src":"17401:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"},"typeName":{"id":80329,"nodeType":"UserDefinedTypeName","pathNode":{"id":80328,"name":"Gear.CodeState","nameLocations":["17401:4:165","17406:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83214,"src":"17401:14:165"},"referencedDeclaration":83214,"src":"17401:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17400:16:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80399,"nodeType":"FunctionDefinition","src":"17602:378:165","nodes":[],"body":{"id":80398,"nodeType":"Block","src":"17699:281:165","nodes":[],"statements":[{"assignments":[80353],"declarations":[{"constant":false,"id":80353,"mutability":"mutable","name":"router","nameLocation":"17725:6:165","nodeType":"VariableDeclaration","scope":80398,"src":"17709:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80352,"nodeType":"UserDefinedTypeName","pathNode":{"id":80351,"name":"Storage","nameLocations":["17709:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"17709:7:165"},"referencedDeclaration":74495,"src":"17709:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80356,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80354,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"17734:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17734:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17709:34:165"},{"assignments":[80362],"declarations":[{"constant":false,"id":80362,"mutability":"mutable","name":"res","nameLocation":"17778:3:165","nodeType":"VariableDeclaration","scope":80398,"src":"17754:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80360,"nodeType":"UserDefinedTypeName","pathNode":{"id":80359,"name":"Gear.CodeState","nameLocations":["17754:4:165","17759:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83214,"src":"17754:14:165"},"referencedDeclaration":83214,"src":"17754:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":80361,"nodeType":"ArrayTypeName","src":"17754:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80370,"initialValue":{"arguments":[{"expression":{"id":80367,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80344,"src":"17805:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17815:6:165","memberName":"length","nodeType":"MemberAccess","src":"17805:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17784:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83214_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80364,"nodeType":"UserDefinedTypeName","pathNode":{"id":80363,"name":"Gear.CodeState","nameLocations":["17788:4:165","17793:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83214,"src":"17788:14:165"},"referencedDeclaration":83214,"src":"17788:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":80365,"nodeType":"ArrayTypeName","src":"17788:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17754:68:165"},{"body":{"id":80394,"nodeType":"Block","src":"17880:73:165","statements":[{"expression":{"id":80392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80382,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80362,"src":"17894:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80384,"indexExpression":{"id":80383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80372,"src":"17898:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17894:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80385,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80353,"src":"17903:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"17903:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17923:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"17903:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80391,"indexExpression":{"baseExpression":{"id":80388,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80344,"src":"17929:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80390,"indexExpression":{"id":80389,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80372,"src":"17939:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17929:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17903:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"17894:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":80393,"nodeType":"ExpressionStatement","src":"17894:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80372,"src":"17853:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80376,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80344,"src":"17857:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17867:6:165","memberName":"length","nodeType":"MemberAccess","src":"17857:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17853:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80395,"initializationExpression":{"assignments":[80372],"declarations":[{"constant":false,"id":80372,"mutability":"mutable","name":"i","nameLocation":"17846:1:165","nodeType":"VariableDeclaration","scope":80395,"src":"17838:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80371,"name":"uint256","nodeType":"ElementaryTypeName","src":"17838:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80374,"initialValue":{"hexValue":"30","id":80373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17850:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17838:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17875:3:165","subExpression":{"id":80379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80372,"src":"17875:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80381,"nodeType":"ExpressionStatement","src":"17875:3:165"},"nodeType":"ForStatement","src":"17833:120:165"},{"expression":{"id":80396,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80362,"src":"17970:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80350,"id":80397,"nodeType":"Return","src":"17963:10:165"}]},"baseFunctions":[74785],"documentation":{"id":80341,"nodeType":"StructuredDocumentation","src":"17484:113:165","text":" @dev Returns the states of multiple codes.\n @return codesStates The states of the codes."},"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"17611:11:165","parameters":{"id":80345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80344,"mutability":"mutable","name":"_codesIds","nameLocation":"17642:9:165","nodeType":"VariableDeclaration","scope":80399,"src":"17623:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17623:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80343,"nodeType":"ArrayTypeName","src":"17623:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17622:30:165"},"returnParameters":{"id":80350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80399,"src":"17674:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80347,"nodeType":"UserDefinedTypeName","pathNode":{"id":80346,"name":"Gear.CodeState","nameLocations":["17674:4:165","17679:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83214,"src":"17674:14:165"},"referencedDeclaration":83214,"src":"17674:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":80348,"nodeType":"ArrayTypeName","src":"17674:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83214_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17673:25:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80415,"nodeType":"FunctionDefinition","src":"18106:140:165","nodes":[],"body":{"id":80414,"nodeType":"Block","src":"18179:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80407,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"18196:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18196:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"18196:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83267,"src":"18196:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80412,"indexExpression":{"id":80411,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80402,"src":"18228:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18196:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80406,"id":80413,"nodeType":"Return","src":"18189:50:165"}]},"baseFunctions":[74793],"documentation":{"id":80400,"nodeType":"StructuredDocumentation","src":"17986:115:165","text":" @dev Returns the code ID of the given program.\n @return codeId The code ID of the program."},"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"18115:13:165","parameters":{"id":80403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80402,"mutability":"mutable","name":"_programId","nameLocation":"18137:10:165","nodeType":"VariableDeclaration","scope":80415,"src":"18129:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80401,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18128:20:165"},"returnParameters":{"id":80406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80415,"src":"18170:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18170:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18169:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80471,"nodeType":"FunctionDefinition","src":"18378:376:165","nodes":[],"body":{"id":80470,"nodeType":"Block","src":"18475:279:165","nodes":[],"statements":[{"assignments":[80427],"declarations":[{"constant":false,"id":80427,"mutability":"mutable","name":"router","nameLocation":"18501:6:165","nodeType":"VariableDeclaration","scope":80470,"src":"18485:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80426,"nodeType":"UserDefinedTypeName","pathNode":{"id":80425,"name":"Storage","nameLocations":["18485:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"18485:7:165"},"referencedDeclaration":74495,"src":"18485:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80430,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80428,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"18510:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18510:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18485:34:165"},{"assignments":[80435],"declarations":[{"constant":false,"id":80435,"mutability":"mutable","name":"res","nameLocation":"18547:3:165","nodeType":"VariableDeclaration","scope":80470,"src":"18530:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80434,"nodeType":"ArrayTypeName","src":"18530:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80442,"initialValue":{"arguments":[{"expression":{"id":80439,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80419,"src":"18567:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18580:6:165","memberName":"length","nodeType":"MemberAccess","src":"18567:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18553:13:165","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":80436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80437,"nodeType":"ArrayTypeName","src":"18557:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18530:57:165"},{"body":{"id":80466,"nodeType":"Block","src":"18648:79:165","statements":[{"expression":{"id":80464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80454,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"18662:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80456,"indexExpression":{"id":80455,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"18666:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18662:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80457,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80427,"src":"18671:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18678:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"18671:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18691:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83267,"src":"18671:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80463,"indexExpression":{"baseExpression":{"id":80460,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80419,"src":"18700:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80462,"indexExpression":{"id":80461,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"18713:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18700:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18671:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18662:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80465,"nodeType":"ExpressionStatement","src":"18662:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"18618:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80448,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80419,"src":"18622:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18635:6:165","memberName":"length","nodeType":"MemberAccess","src":"18622:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18618:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80467,"initializationExpression":{"assignments":[80444],"declarations":[{"constant":false,"id":80444,"mutability":"mutable","name":"i","nameLocation":"18611:1:165","nodeType":"VariableDeclaration","scope":80467,"src":"18603:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80443,"name":"uint256","nodeType":"ElementaryTypeName","src":"18603:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80446,"initialValue":{"hexValue":"30","id":80445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18603:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18643:3:165","subExpression":{"id":80451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"18643:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80453,"nodeType":"ExpressionStatement","src":"18643:3:165"},"nodeType":"ForStatement","src":"18598:129:165"},{"expression":{"id":80468,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"18744:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80424,"id":80469,"nodeType":"Return","src":"18737:10:165"}]},"baseFunctions":[74803],"documentation":{"id":80416,"nodeType":"StructuredDocumentation","src":"18252:121:165","text":" @dev Returns the code IDs of the given programs.\n @return codesIds The code IDs of the programs."},"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"18387:15:165","parameters":{"id":80420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80419,"mutability":"mutable","name":"_programsIds","nameLocation":"18422:12:165","nodeType":"VariableDeclaration","scope":80471,"src":"18403:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80417,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80418,"nodeType":"ArrayTypeName","src":"18403:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18402:33:165"},"returnParameters":{"id":80424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80471,"src":"18457:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18457:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80422,"nodeType":"ArrayTypeName","src":"18457:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18456:18:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80483,"nodeType":"FunctionDefinition","src":"18871:115:165","nodes":[],"body":{"id":80482,"nodeType":"Block","src":"18926:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80477,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"18943:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18943:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18953:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"18943:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18966:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"18943:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80476,"id":80481,"nodeType":"Return","src":"18936:43:165"}]},"baseFunctions":[74809],"documentation":{"id":80472,"nodeType":"StructuredDocumentation","src":"18760:106:165","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"18880:13:165","parameters":{"id":80473,"nodeType":"ParameterList","parameters":[],"src":"18893:2:165"},"returnParameters":{"id":80476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80483,"src":"18917:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80474,"name":"uint256","nodeType":"ElementaryTypeName","src":"18917:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18916:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80495,"nodeType":"FunctionDefinition","src":"19123:127:165","nodes":[],"body":{"id":80494,"nodeType":"Block","src":"19184:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80489,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"19201:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19211:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"19201:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19224:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83273,"src":"19201:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80488,"id":80493,"nodeType":"Return","src":"19194:49:165"}]},"baseFunctions":[74815],"documentation":{"id":80484,"nodeType":"StructuredDocumentation","src":"18992:126:165","text":" @dev Returns the count of validated codes.\n @return validatedCodesCount The count of validated codes."},"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"19132:19:165","parameters":{"id":80485,"nodeType":"ParameterList","parameters":[],"src":"19151:2:165"},"returnParameters":{"id":80488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80495,"src":"19175:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80486,"name":"uint256","nodeType":"ElementaryTypeName","src":"19175:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19174:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80507,"nodeType":"FunctionDefinition","src":"19447:147:165","nodes":[],"body":{"id":80506,"nodeType":"Block","src":"19519:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80501,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"19536:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19536:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19546:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"19536:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19559:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"19536:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80500,"id":80505,"nodeType":"Return","src":"19529:58:165"}]},"baseFunctions":[74821],"documentation":{"id":80496,"nodeType":"StructuredDocumentation","src":"19256:186:165","text":" @dev Returns the base fee for requesting code validation in WVARA ERC20 token.\n @return requestCodeValidationBaseFee The base fee for requesting code validation."},"functionSelector":"188509e9","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationBaseFee","nameLocation":"19456:28:165","parameters":{"id":80497,"nodeType":"ParameterList","parameters":[],"src":"19484:2:165"},"returnParameters":{"id":80500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80507,"src":"19510:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80498,"name":"uint256","nodeType":"ElementaryTypeName","src":"19510:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19509:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80519,"nodeType":"FunctionDefinition","src":"19846:149:165","nodes":[],"body":{"id":80518,"nodeType":"Block","src":"19919:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80513,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"19936:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19936:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"19936:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19959:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83282,"src":"19936:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80512,"id":80517,"nodeType":"Return","src":"19929:59:165"}]},"baseFunctions":[74827],"documentation":{"id":80508,"nodeType":"StructuredDocumentation","src":"19600:241:165","text":" @dev Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @return requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."},"functionSelector":"f1ef31ec","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationExtraFee","nameLocation":"19855:29:165","parameters":{"id":80509,"nodeType":"ParameterList","parameters":[],"src":"19884:2:165"},"returnParameters":{"id":80512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80519,"src":"19910:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80510,"name":"uint256","nodeType":"ElementaryTypeName","src":"19910:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19909:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80531,"nodeType":"FunctionDefinition","src":"20092:108:165","nodes":[],"body":{"id":80530,"nodeType":"Block","src":"20157:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80526,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"20174:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20184:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"20174:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80525,"id":80529,"nodeType":"Return","src":"20167:26:165"}]},"baseFunctions":[74834],"documentation":{"id":80520,"nodeType":"StructuredDocumentation","src":"20001:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20101:9:165","parameters":{"id":80521,"nodeType":"ParameterList","parameters":[],"src":"20110:2:165"},"returnParameters":{"id":80525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80531,"src":"20134:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80523,"nodeType":"UserDefinedTypeName","pathNode":{"id":80522,"name":"Gear.Timelines","nameLocations":["20134:4:165","20139:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83337,"src":"20134:14:165"},"referencedDeclaration":83337,"src":"20134:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20133:23:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80541,"nodeType":"FunctionDefinition","src":"20374:104:165","nodes":[],"body":{"id":80540,"nodeType":"Block","src":"20434:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80537,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20451:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20451:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80536,"id":80539,"nodeType":"Return","src":"20444:27:165"}]},"baseFunctions":[74840],"documentation":{"id":80532,"nodeType":"StructuredDocumentation","src":"20206:163:165","text":" @dev Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\n @return domainSeparator The domain separator."},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"20383:16:165","parameters":{"id":80533,"nodeType":"ParameterList","parameters":[],"src":"20399:2:165"},"returnParameters":{"id":80536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80541,"src":"20425:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20425:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20424:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80557,"nodeType":"FunctionDefinition","src":"20642:116:165","nodes":[],"body":{"id":80556,"nodeType":"Block","src":"20699:59:165","nodes":[],"statements":[{"expression":{"id":80554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80549,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"20709:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20709:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20719:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"20709:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20733:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":83098,"src":"20709:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80553,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"20742:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20709:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80555,"nodeType":"ExpressionStatement","src":"20709:42:165"}]},"baseFunctions":[74846],"documentation":{"id":80542,"nodeType":"StructuredDocumentation","src":"20509:128:165","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":80547,"kind":"modifierInvocation","modifierName":{"id":80546,"name":"onlyOwner","nameLocations":["20689:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20689:9:165"},"nodeType":"ModifierInvocation","src":"20689:9:165"}],"name":"setMirror","nameLocation":"20651:9:165","parameters":{"id":80545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80544,"mutability":"mutable","name":"newMirror","nameLocation":"20669:9:165","nodeType":"VariableDeclaration","scope":80557,"src":"20661:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80543,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20660:19:165"},"returnParameters":{"id":80548,"nodeType":"ParameterList","parameters":[],"src":"20699:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80573,"nodeType":"FunctionDefinition","src":"20937:161:165","nodes":[],"body":{"id":80572,"nodeType":"Block","src":"21017:81:165","nodes":[],"statements":[{"expression":{"id":80570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80565,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"21027:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21027:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21037:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"21027:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21050:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"21027:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80569,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80560,"src":"21081:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21027:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80571,"nodeType":"ExpressionStatement","src":"21027:64:165"}]},"baseFunctions":[74852],"documentation":{"id":80558,"nodeType":"StructuredDocumentation","src":"20764:168:165","text":" @dev Sets the base fee for requesting code validation in WVARA ERC20 token.\n @param newBaseFee The new base fee for requesting code validation."},"functionSelector":"11bec80d","implemented":true,"kind":"function","modifiers":[{"id":80563,"kind":"modifierInvocation","modifierName":{"id":80562,"name":"onlyOwner","nameLocations":["21007:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21007:9:165"},"nodeType":"ModifierInvocation","src":"21007:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20946:31:165","parameters":{"id":80561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80560,"mutability":"mutable","name":"newBaseFee","nameLocation":"20986:10:165","nodeType":"VariableDeclaration","scope":80573,"src":"20978:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80559,"name":"uint256","nodeType":"ElementaryTypeName","src":"20978:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20977:20:165"},"returnParameters":{"id":80564,"nodeType":"ParameterList","parameters":[],"src":"21017:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80589,"nodeType":"FunctionDefinition","src":"21332:165:165","nodes":[],"body":{"id":80588,"nodeType":"Block","src":"21414:83:165","nodes":[],"statements":[{"expression":{"id":80586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80581,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"21424:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21424:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"21424:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21447:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83282,"src":"21424:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80585,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80576,"src":"21479:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21424:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80587,"nodeType":"ExpressionStatement","src":"21424:66:165"}]},"baseFunctions":[74858],"documentation":{"id":80574,"nodeType":"StructuredDocumentation","src":"21104:223:165","text":" @dev Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @param newExtraFee The new extra fee for requesting code validation on behalf of someone else."},"functionSelector":"0b9737ce","implemented":true,"kind":"function","modifiers":[{"id":80579,"kind":"modifierInvocation","modifierName":{"id":80578,"name":"onlyOwner","nameLocations":["21404:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21404:9:165"},"nodeType":"ModifierInvocation","src":"21404:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21341:32:165","parameters":{"id":80577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80576,"mutability":"mutable","name":"newExtraFee","nameLocation":"21382:11:165","nodeType":"VariableDeclaration","scope":80589,"src":"21374:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80575,"name":"uint256","nodeType":"ElementaryTypeName","src":"21374:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21373:21:165"},"returnParameters":{"id":80580,"nodeType":"ParameterList","parameters":[],"src":"21414:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80599,"nodeType":"FunctionDefinition","src":"21552:59:165","nodes":[],"body":{"id":80598,"nodeType":"Block","src":"21586:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80595,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"21596:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21596:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80597,"nodeType":"ExpressionStatement","src":"21596:8:165"}]},"baseFunctions":[74862],"documentation":{"id":80590,"nodeType":"StructuredDocumentation","src":"21503:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80593,"kind":"modifierInvocation","modifierName":{"id":80592,"name":"onlyOwner","nameLocations":["21576:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21576:9:165"},"nodeType":"ModifierInvocation","src":"21576:9:165"}],"name":"pause","nameLocation":"21561:5:165","parameters":{"id":80591,"nodeType":"ParameterList","parameters":[],"src":"21566:2:165"},"returnParameters":{"id":80594,"nodeType":"ParameterList","parameters":[],"src":"21586:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80609,"nodeType":"FunctionDefinition","src":"21668:63:165","nodes":[],"body":{"id":80608,"nodeType":"Block","src":"21704:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80605,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"21714:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21714:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80607,"nodeType":"ExpressionStatement","src":"21714:10:165"}]},"baseFunctions":[74866],"documentation":{"id":80600,"nodeType":"StructuredDocumentation","src":"21617:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80603,"kind":"modifierInvocation","modifierName":{"id":80602,"name":"onlyOwner","nameLocations":["21694:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21694:9:165"},"nodeType":"ModifierInvocation","src":"21694:9:165"}],"name":"unpause","nameLocation":"21677:7:165","parameters":{"id":80601,"nodeType":"ParameterList","parameters":[],"src":"21684:2:165"},"returnParameters":{"id":80604,"nodeType":"ParameterList","parameters":[],"src":"21704:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80664,"nodeType":"FunctionDefinition","src":"21832:385:165","nodes":[],"body":{"id":80663,"nodeType":"Block","src":"21870:347:165","nodes":[],"statements":[{"assignments":[80615],"declarations":[{"constant":false,"id":80615,"mutability":"mutable","name":"router","nameLocation":"21896:6:165","nodeType":"VariableDeclaration","scope":80663,"src":"21880:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80614,"nodeType":"UserDefinedTypeName","pathNode":{"id":80613,"name":"Storage","nameLocations":["21880:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"21880:7:165"},"referencedDeclaration":74495,"src":"21880:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80618,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80616,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"21905:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21905:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21880:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80620,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80615,"src":"21933:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21940:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"21933:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21953:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"21933:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21969:1:165","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":80624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21961:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21961:7:165","typeDescriptions":{}}},"id":80626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21961:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21933:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80628,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74563,"src":"21973:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21973:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80619,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80631,"nodeType":"ExpressionStatement","src":"21925:72:165"},{"assignments":[80633],"declarations":[{"constant":false,"id":80633,"mutability":"mutable","name":"genesisHash","nameLocation":"22016:11:165","nodeType":"VariableDeclaration","scope":80663,"src":"22008:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22008:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80639,"initialValue":{"arguments":[{"expression":{"expression":{"id":80635,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80615,"src":"22040:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22047:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"22040:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22060:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83231,"src":"22040:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80634,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22030:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22030:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22008:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80641,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80633,"src":"22086:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22109:1:165","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":80643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22101:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22101:7:165","typeDescriptions":{}}},"id":80645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22101:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22086:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80647,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74566,"src":"22113:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22113:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80640,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22078:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22078:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80650,"nodeType":"ExpressionStatement","src":"22078:57:165"},{"expression":{"id":80661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80651,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80615,"src":"22146:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22153:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"22146:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22166:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"22146:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80657,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80615,"src":"22183:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22190:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"22183:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22203:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83231,"src":"22183:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80656,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22173:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22173:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22146:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80662,"nodeType":"ExpressionStatement","src":"22146:64:165"}]},"baseFunctions":[74870],"documentation":{"id":80610,"nodeType":"StructuredDocumentation","src":"21756:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21841:17:165","parameters":{"id":80611,"nodeType":"ParameterList","parameters":[],"src":"21858:2:165"},"returnParameters":{"id":80612,"nodeType":"ParameterList","parameters":[],"src":"21870:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80793,"nodeType":"FunctionDefinition","src":"23079:986:165","nodes":[],"body":{"id":80792,"nodeType":"Block","src":"23223:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23250:1:165","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":80681,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23241:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23256:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23241:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80686,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"23259:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80680,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23233:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23233:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80689,"nodeType":"ExpressionStatement","src":"23233:41:165"},{"assignments":[80692],"declarations":[{"constant":false,"id":80692,"mutability":"mutable","name":"router","nameLocation":"23301:6:165","nodeType":"VariableDeclaration","scope":80792,"src":"23285:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80691,"nodeType":"UserDefinedTypeName","pathNode":{"id":80690,"name":"Storage","nameLocations":["23285:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"23285:7:165"},"referencedDeclaration":74495,"src":"23285:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80695,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80693,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"23310:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23310:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23285:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80697,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80692,"src":"23337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23344:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"23337:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23357:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"23337:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23373:1:165","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":80701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23365:7:165","typeDescriptions":{}}},"id":80703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23337:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80705,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"23377:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23377:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80696,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23329:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23329:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80708,"nodeType":"ExpressionStatement","src":"23329:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"},"id":80718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80710,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80692,"src":"23430:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23437:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"23430:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23450:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"23430:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80714,"indexExpression":{"id":80713,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80667,"src":"23456:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23430:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80715,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"23468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23473:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"23468:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":80717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23483:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83209,"src":"23468:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"23430:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80719,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"23492:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23492:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23422:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23422:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80722,"nodeType":"ExpressionStatement","src":"23422:107:165"},{"assignments":[80725],"declarations":[{"constant":false,"id":80725,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23553:12:165","nodeType":"VariableDeclaration","scope":80792,"src":"23540:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"},"typeName":{"id":80724,"nodeType":"UserDefinedTypeName","pathNode":{"id":80723,"name":"IWrappedVara","nameLocations":["23540:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75011,"src":"23540:12:165"},"referencedDeclaration":75011,"src":"23540:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80731,"initialValue":{"arguments":[{"expression":{"expression":{"id":80727,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80692,"src":"23581:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23588:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"23581:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23602:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"23581:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80726,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"23568:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":80730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23568:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23540:74:165"},{"assignments":[80733],"declarations":[{"constant":false,"id":80733,"mutability":"mutable","name":"baseFee","nameLocation":"23633:7:165","nodeType":"VariableDeclaration","scope":80792,"src":"23625:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80732,"name":"uint256","nodeType":"ElementaryTypeName","src":"23625:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80737,"initialValue":{"expression":{"expression":{"id":80734,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80692,"src":"23643:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23650:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"23643:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23663:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"23643:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23625:66:165"},{"clauses":[{"block":{"id":80752,"nodeType":"Block","src":"23784:2:165","statements":[]},"errorName":"","id":80753,"nodeType":"TryCatchClause","src":"23784:2:165"},{"block":{"id":80754,"nodeType":"Block","src":"23793:2:165","statements":[]},"errorName":"","id":80755,"nodeType":"TryCatchClause","src":"23787:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80740,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23725:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23725:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23745:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":80743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23737:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80742,"name":"address","nodeType":"ElementaryTypeName","src":"23737:7:165","typeDescriptions":{}}},"id":80745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23737:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80746,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80733,"src":"23752:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80747,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80669,"src":"23761:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80748,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80671,"src":"23772:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80749,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80673,"src":"23776:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80750,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80675,"src":"23780:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80738,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"23705:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":80739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23718:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"23705:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23705:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80756,"nodeType":"TryStatement","src":"23701:94:165"},{"assignments":[80758],"declarations":[{"constant":false,"id":80758,"mutability":"mutable","name":"success","nameLocation":"23809:7:165","nodeType":"VariableDeclaration","scope":80792,"src":"23804:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80757,"name":"bool","nodeType":"ElementaryTypeName","src":"23804:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80769,"initialValue":{"arguments":[{"expression":{"id":80761,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23845:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23849:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23845:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80765,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23865:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":80764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23857:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80763,"name":"address","nodeType":"ElementaryTypeName","src":"23857:7:165","typeDescriptions":{}}},"id":80766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23857:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80767,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80733,"src":"23872:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80759,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"23819:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":80760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23832:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"23819:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23819:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23804:76:165"},{"expression":{"arguments":[{"id":80771,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80758,"src":"23898:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80772,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"23907:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23907:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23890:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23890:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80775,"nodeType":"ExpressionStatement","src":"23890:38:165"},{"expression":{"id":80786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80776,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80692,"src":"23939:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"23939:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23959:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"23939:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80782,"indexExpression":{"id":80779,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80667,"src":"23965:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23939:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80783,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"23976:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23981:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"23976:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":80785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23991:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83211,"src":"23976:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"23939:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":80787,"nodeType":"ExpressionStatement","src":"23939:71:165"},{"eventCall":{"arguments":[{"id":80789,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80667,"src":"24050:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80788,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"24026:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24026:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80791,"nodeType":"EmitStatement","src":"24021:37:165"}]},"baseFunctions":[74884],"documentation":{"id":80665,"nodeType":"StructuredDocumentation","src":"22223:851:165","text":" @dev Requests code validation for the given code ID.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()`\n in the WVARA ERC20 token.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"8c4ace6a","implemented":true,"kind":"function","modifiers":[{"id":80678,"kind":"modifierInvocation","modifierName":{"id":80677,"name":"whenNotPaused","nameLocations":["23205:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"23205:13:165"},"nodeType":"ModifierInvocation","src":"23205:13:165"}],"name":"requestCodeValidation","nameLocation":"23088:21:165","parameters":{"id":80676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80667,"mutability":"mutable","name":"_codeId","nameLocation":"23118:7:165","nodeType":"VariableDeclaration","scope":80793,"src":"23110:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80669,"mutability":"mutable","name":"_deadline","nameLocation":"23135:9:165","nodeType":"VariableDeclaration","scope":80793,"src":"23127:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80668,"name":"uint256","nodeType":"ElementaryTypeName","src":"23127:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80671,"mutability":"mutable","name":"_v","nameLocation":"23152:2:165","nodeType":"VariableDeclaration","scope":80793,"src":"23146:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80670,"name":"uint8","nodeType":"ElementaryTypeName","src":"23146:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80673,"mutability":"mutable","name":"_r","nameLocation":"23164:2:165","nodeType":"VariableDeclaration","scope":80793,"src":"23156:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23156:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80675,"mutability":"mutable","name":"_s","nameLocation":"23176:2:165","nodeType":"VariableDeclaration","scope":80793,"src":"23168:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23168:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23109:70:165"},"returnParameters":{"id":80679,"nodeType":"ParameterList","parameters":[],"src":"23223:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81059,"nodeType":"FunctionDefinition","src":"25572:2418:165","nodes":[],"body":{"id":81058,"nodeType":"Block","src":"25882:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:165","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":80821,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25900:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25900:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25915:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25900:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80826,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"25918:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25918:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25892:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25892:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80829,"nodeType":"ExpressionStatement","src":"25892:41:165"},{"assignments":[80832],"declarations":[{"constant":false,"id":80832,"mutability":"mutable","name":"router","nameLocation":"25960:6:165","nodeType":"VariableDeclaration","scope":81058,"src":"25944:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80831,"nodeType":"UserDefinedTypeName","pathNode":{"id":80830,"name":"Storage","nameLocations":["25944:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"25944:7:165"},"referencedDeclaration":74495,"src":"25944:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80835,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80833,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"25969:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25969:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25944:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80837,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80832,"src":"25996:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26003:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"25996:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26016:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"25996:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26032:1:165","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":80841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26024:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26024:7:165","typeDescriptions":{}}},"id":80843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26024:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25996:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80845,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"26036:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25988:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25988:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80848,"nodeType":"ExpressionStatement","src":"25988:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"},"id":80858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80850,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80832,"src":"26089:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26096:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"26089:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26109:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"26089:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80854,"indexExpression":{"id":80853,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80798,"src":"26115:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26089:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80855,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"26127:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":80856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26132:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"26127:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":80857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26142:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83209,"src":"26127:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"26089:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80859,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"26151:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26151:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80849,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80862,"nodeType":"ExpressionStatement","src":"26081:107:165"},{"assignments":[80864],"declarations":[{"constant":false,"id":80864,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26207:17:165","nodeType":"VariableDeclaration","scope":81058,"src":"26199:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80863,"name":"uint256","nodeType":"ElementaryTypeName","src":"26199:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80866,"initialValue":{"hexValue":"30","id":80865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26227:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26199:29:165"},{"body":{"id":80882,"nodeType":"Block","src":"26251:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80869,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80864,"src":"26278:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80868,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26269:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26269:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26308:1:165","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":80872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26300:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26300:7:165","typeDescriptions":{}}},"id":80874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26300:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26269:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80878,"nodeType":"IfStatement","src":"26265:85:165","trueBody":{"id":80877,"nodeType":"Block","src":"26312:38:165","statements":[{"id":80876,"nodeType":"Break","src":"26330:5:165"}]}},{"expression":{"id":80880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26363:19:165","subExpression":{"id":80879,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80864,"src":"26363:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80881,"nodeType":"ExpressionStatement","src":"26363:19:165"}]},"condition":{"hexValue":"74727565","id":80867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26245:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80883,"nodeType":"WhileStatement","src":"26238:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80885,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"26411:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26423:6:165","memberName":"length","nodeType":"MemberAccess","src":"26411:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80887,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80864,"src":"26433:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26411:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80890,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"26476:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26488:6:165","memberName":"length","nodeType":"MemberAccess","src":"26476:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80892,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80864,"src":"26496:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80889,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74582,"src":"26452:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26452:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80884,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26403:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26403:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80895,"nodeType":"ExpressionStatement","src":"26403:112:165"},{"body":{"id":80928,"nodeType":"Block","src":"26575:174:165","statements":[{"assignments":[80908],"declarations":[{"constant":false,"id":80908,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26597:16:165","nodeType":"VariableDeclaration","scope":80928,"src":"26589:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26589:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80912,"initialValue":{"arguments":[{"id":80910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"26625:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80909,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26616:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26616:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26589:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80914,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"26649:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80916,"indexExpression":{"id":80915,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"26661:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26649:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80917,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80908,"src":"26667:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26649:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80920,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"26701:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80921,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"26704:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80923,"indexExpression":{"id":80922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"26716:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26704:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80924,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80908,"src":"26720:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80919,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74591,"src":"26685:15:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":80925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26685:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80913,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26641:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26641:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80927,"nodeType":"ExpressionStatement","src":"26641:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"26546:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80901,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"26550:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26562:6:165","memberName":"length","nodeType":"MemberAccess","src":"26550:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26546:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80929,"initializationExpression":{"assignments":[80897],"declarations":[{"constant":false,"id":80897,"mutability":"mutable","name":"i","nameLocation":"26539:1:165","nodeType":"VariableDeclaration","scope":80929,"src":"26531:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80896,"name":"uint256","nodeType":"ElementaryTypeName","src":"26531:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80899,"initialValue":{"hexValue":"30","id":80898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26543:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26531:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26570:3:165","subExpression":{"id":80904,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80897,"src":"26570:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80906,"nodeType":"ExpressionStatement","src":"26570:3:165"},"nodeType":"ForStatement","src":"26526:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80931,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26825:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"26825:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80933,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80803,"src":"26844:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26825:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80936,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80803,"src":"26872:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80935,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"26855:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26855:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80930,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26817:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26817:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80939,"nodeType":"ExpressionStatement","src":"26817:66:165"},{"assignments":[80941],"declarations":[{"constant":false,"id":80941,"mutability":"mutable","name":"structHash","nameLocation":"26902:10:165","nodeType":"VariableDeclaration","scope":81058,"src":"26894:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26894:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80960,"initialValue":{"arguments":[{"arguments":[{"id":80945,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79658,"src":"26966:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80946,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80796,"src":"27026:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80947,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80798,"src":"27054:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80951,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"27106:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":80949,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27089:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27093:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27089:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27089:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80948,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27079:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27079:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80955,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80796,"src":"27147:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80954,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"27137:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27137:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80957,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80803,"src":"27176:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26938:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26942:6:165","memberName":"encode","nodeType":"MemberAccess","src":"26938:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26938:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80942,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26915:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26915:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26894:315:165"},{"assignments":[80962],"declarations":[{"constant":false,"id":80962,"mutability":"mutable","name":"hash","nameLocation":"27228:4:165","nodeType":"VariableDeclaration","scope":81058,"src":"27220:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27220:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80966,"initialValue":{"arguments":[{"id":80964,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80941,"src":"27252:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80963,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"27235:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27235:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27220:43:165"},{"assignments":[80968],"declarations":[{"constant":false,"id":80968,"mutability":"mutable","name":"signer","nameLocation":"27282:6:165","nodeType":"VariableDeclaration","scope":81058,"src":"27274:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80967,"name":"address","nodeType":"ElementaryTypeName","src":"27274:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80976,"initialValue":{"arguments":[{"id":80971,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80962,"src":"27305:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80972,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80805,"src":"27311:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80973,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80807,"src":"27316:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80974,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80809,"src":"27321:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80969,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"27291:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27297:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"27291:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":80975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27291:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27274:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80978,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80968,"src":"27343:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80979,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80796,"src":"27353:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27343:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80982,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80968,"src":"27379:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80983,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80796,"src":"27387:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80981,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"27365:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27365:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27335:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27335:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80986,"nodeType":"ExpressionStatement","src":"27335:64:165"},{"assignments":[80989],"declarations":[{"constant":false,"id":80989,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27423:12:165","nodeType":"VariableDeclaration","scope":81058,"src":"27410:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"},"typeName":{"id":80988,"nodeType":"UserDefinedTypeName","pathNode":{"id":80987,"name":"IWrappedVara","nameLocations":["27410:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75011,"src":"27410:12:165"},"referencedDeclaration":75011,"src":"27410:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80995,"initialValue":{"arguments":[{"expression":{"expression":{"id":80991,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80832,"src":"27451:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27458:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"27451:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27472:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"27451:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80990,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"27438:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":80994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27438:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27410:74:165"},{"assignments":[80997],"declarations":[{"constant":false,"id":80997,"mutability":"mutable","name":"fee","nameLocation":"27503:3:165","nodeType":"VariableDeclaration","scope":81058,"src":"27495:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80996,"name":"uint256","nodeType":"ElementaryTypeName","src":"27495:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81005,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80998,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80832,"src":"27521:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27528:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"27521:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27541:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83279,"src":"27521:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81001,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80832,"src":"27572:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27579:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"27572:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27592:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83282,"src":"27572:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27521:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27495:126:165"},{"clauses":[{"block":{"id":81019,"nodeType":"Block","src":"27713:2:165","statements":[]},"errorName":"","id":81020,"nodeType":"TryCatchClause","src":"27713:2:165"},{"block":{"id":81021,"nodeType":"Block","src":"27722:2:165","statements":[]},"errorName":"","id":81022,"nodeType":"TryCatchClause","src":"27716:8:165"}],"externalCall":{"arguments":[{"id":81008,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80796,"src":"27655:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27675:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27667:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81009,"name":"address","nodeType":"ElementaryTypeName","src":"27667:7:165","typeDescriptions":{}}},"id":81012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27667:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81013,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80997,"src":"27682:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81014,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80803,"src":"27687:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81015,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80811,"src":"27698:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81016,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80813,"src":"27703:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81017,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80815,"src":"27708:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81006,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80989,"src":"27635:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27648:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"27635:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81023,"nodeType":"TryStatement","src":"27631:93:165"},{"assignments":[81025],"declarations":[{"constant":false,"id":81025,"mutability":"mutable","name":"success","nameLocation":"27738:7:165","nodeType":"VariableDeclaration","scope":81058,"src":"27733:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81024,"name":"bool","nodeType":"ElementaryTypeName","src":"27733:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81035,"initialValue":{"arguments":[{"id":81028,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80796,"src":"27774:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81031,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27794:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27786:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81029,"name":"address","nodeType":"ElementaryTypeName","src":"27786:7:165","typeDescriptions":{}}},"id":81032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27786:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81033,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80997,"src":"27801:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81026,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80989,"src":"27748:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27761:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"27748:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27748:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27733:72:165"},{"expression":{"arguments":[{"id":81037,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81025,"src":"27823:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81038,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"27832:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27832:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81036,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27815:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27815:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81041,"nodeType":"ExpressionStatement","src":"27815:38:165"},{"expression":{"id":81052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81042,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80832,"src":"27864:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27871:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"27864:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27884:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"27864:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81048,"indexExpression":{"id":81045,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80798,"src":"27890:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27864:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81049,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"27901:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27906:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"27901:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":81051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27916:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83211,"src":"27901:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"27864:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":81053,"nodeType":"ExpressionStatement","src":"27864:71:165"},{"eventCall":{"arguments":[{"id":81055,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80798,"src":"27975:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81054,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"27951:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27951:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81057,"nodeType":"EmitStatement","src":"27946:37:165"}]},"baseFunctions":[74909],"documentation":{"id":80794,"nodeType":"StructuredDocumentation","src":"24071:1496:165","text":" @dev Requests code validation for the given code ID on behalf of someone else.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()`\n in the WVARA ERC20 token.\n @param _requester The address of the requester on behalf of whom the code validation is requested.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _blobHashes The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`.\n This is needed to verify that the transaction has expected blobs attached.\n @param _deadline Deadline for the transaction to be executed.\n @param _v1 ECDSA signature parameter (for requestCodeValidation).\n @param _r1 ECDSA signature parameter (for requestCodeValidation).\n @param _s1 ECDSA signature parameter (for requestCodeValidation).\n @param _v2 ECDSA signature parameter (for permit).\n @param _r2 ECDSA signature parameter (for permit).\n @param _s2 ECDSA signature parameter (for permit)."},"functionSelector":"f0fd702a","implemented":true,"kind":"function","modifiers":[{"id":80818,"kind":"modifierInvocation","modifierName":{"id":80817,"name":"whenNotPaused","nameLocations":["25868:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"25868:13:165"},"nodeType":"ModifierInvocation","src":"25868:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25581:29:165","parameters":{"id":80816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80796,"mutability":"mutable","name":"_requester","nameLocation":"25628:10:165","nodeType":"VariableDeclaration","scope":81059,"src":"25620:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80795,"name":"address","nodeType":"ElementaryTypeName","src":"25620:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80798,"mutability":"mutable","name":"_codeId","nameLocation":"25656:7:165","nodeType":"VariableDeclaration","scope":81059,"src":"25648:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25648:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80801,"mutability":"mutable","name":"_blobHashes","nameLocation":"25692:11:165","nodeType":"VariableDeclaration","scope":81059,"src":"25673:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25673:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80800,"nodeType":"ArrayTypeName","src":"25673:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80803,"mutability":"mutable","name":"_deadline","nameLocation":"25721:9:165","nodeType":"VariableDeclaration","scope":81059,"src":"25713:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80802,"name":"uint256","nodeType":"ElementaryTypeName","src":"25713:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80805,"mutability":"mutable","name":"_v1","nameLocation":"25746:3:165","nodeType":"VariableDeclaration","scope":81059,"src":"25740:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80804,"name":"uint8","nodeType":"ElementaryTypeName","src":"25740:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80807,"mutability":"mutable","name":"_r1","nameLocation":"25767:3:165","nodeType":"VariableDeclaration","scope":81059,"src":"25759:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25759:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80809,"mutability":"mutable","name":"_s1","nameLocation":"25788:3:165","nodeType":"VariableDeclaration","scope":81059,"src":"25780:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25780:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80811,"mutability":"mutable","name":"_v2","nameLocation":"25807:3:165","nodeType":"VariableDeclaration","scope":81059,"src":"25801:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80810,"name":"uint8","nodeType":"ElementaryTypeName","src":"25801:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80813,"mutability":"mutable","name":"_r2","nameLocation":"25828:3:165","nodeType":"VariableDeclaration","scope":81059,"src":"25820:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25820:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80815,"mutability":"mutable","name":"_s2","nameLocation":"25849:3:165","nodeType":"VariableDeclaration","scope":81059,"src":"25841:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25841:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25610:248:165"},"returnParameters":{"id":80819,"nodeType":"ParameterList","parameters":[],"src":"25882:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81104,"nodeType":"FunctionDefinition","src":"29070:396:165","nodes":[],"body":{"id":81103,"nodeType":"Block","src":"29224:242:165","nodes":[],"statements":[{"assignments":[81074,null],"declarations":[{"constant":false,"id":81074,"mutability":"mutable","name":"mirror","nameLocation":"29243:6:165","nodeType":"VariableDeclaration","scope":81103,"src":"29235:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81073,"name":"address","nodeType":"ElementaryTypeName","src":"29235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81080,"initialValue":{"arguments":[{"id":81076,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"29269:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81077,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"29278:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":81078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29285:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81075,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81631,"src":"29254:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29254:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"29234:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81085,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81066,"src":"29341:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29373:1:165","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":81087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81086,"name":"address","nodeType":"ElementaryTypeName","src":"29365:7:165","typeDescriptions":{}}},"id":81089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29341:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81093,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81066,"src":"29391:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29341:70:165","trueExpression":{"expression":{"id":81091,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29378:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29382:6:165","memberName":"sender","nodeType":"MemberAccess","src":"29378:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81095,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80090,"src":"29413:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29413:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29427:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":81098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29433:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81082,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81074,"src":"29309:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81081,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"29301:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":81083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":81084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29330:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74390,"src":"29301:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81100,"nodeType":"ExpressionStatement","src":"29301:134:165"},{"expression":{"id":81101,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81074,"src":"29453:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81072,"id":81102,"nodeType":"Return","src":"29446:13:165"}]},"baseFunctions":[74921],"documentation":{"id":81060,"nodeType":"StructuredDocumentation","src":"27996:1069:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, and initializer.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":81069,"kind":"modifierInvocation","modifierName":{"id":81068,"name":"whenNotPaused","nameLocations":["29180:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"29180:13:165"},"nodeType":"ModifierInvocation","src":"29180:13:165"}],"name":"createProgram","nameLocation":"29079:13:165","parameters":{"id":81067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81062,"mutability":"mutable","name":"_codeId","nameLocation":"29101:7:165","nodeType":"VariableDeclaration","scope":81104,"src":"29093:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29093:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81064,"mutability":"mutable","name":"_salt","nameLocation":"29118:5:165","nodeType":"VariableDeclaration","scope":81104,"src":"29110:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81066,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29133:20:165","nodeType":"VariableDeclaration","scope":81104,"src":"29125:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81065,"name":"address","nodeType":"ElementaryTypeName","src":"29125:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29092:62:165"},"returnParameters":{"id":81072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81104,"src":"29211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81070,"name":"address","nodeType":"ElementaryTypeName","src":"29211:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29210:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81209,"nodeType":"FunctionDefinition","src":"30939:1031:165","nodes":[],"body":{"id":81208,"nodeType":"Block","src":"31244:726:165","nodes":[],"statements":[{"assignments":[81129,81132],"declarations":[{"constant":false,"id":81129,"mutability":"mutable","name":"mirror","nameLocation":"31263:6:165","nodeType":"VariableDeclaration","scope":81208,"src":"31255:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81128,"name":"address","nodeType":"ElementaryTypeName","src":"31255:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81132,"mutability":"mutable","name":"router","nameLocation":"31287:6:165","nodeType":"VariableDeclaration","scope":81208,"src":"31271:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81131,"nodeType":"UserDefinedTypeName","pathNode":{"id":81130,"name":"Storage","nameLocations":["31271:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"31271:7:165"},"referencedDeclaration":74495,"src":"31271:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81138,"initialValue":{"arguments":[{"id":81134,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81107,"src":"31312:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81135,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81109,"src":"31321:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":81136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31328:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81133,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81631,"src":"31297:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31297:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"31254:79:165"},{"assignments":[81141],"declarations":[{"constant":false,"id":81141,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31357:12:165","nodeType":"VariableDeclaration","scope":81208,"src":"31344:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"},"typeName":{"id":81140,"nodeType":"UserDefinedTypeName","pathNode":{"id":81139,"name":"IWrappedVara","nameLocations":["31344:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75011,"src":"31344:12:165"},"referencedDeclaration":75011,"src":"31344:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81147,"initialValue":{"arguments":[{"expression":{"expression":{"id":81143,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81132,"src":"31385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31392:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"31385:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31406:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"31385:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81142,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"31372:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":81146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31372:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31344:74:165"},{"clauses":[{"block":{"id":81162,"nodeType":"Block","src":"31530:2:165","statements":[]},"errorName":"","id":81163,"nodeType":"TryCatchClause","src":"31530:2:165"},{"block":{"id":81164,"nodeType":"Block","src":"31539:2:165","statements":[]},"errorName":"","id":81165,"nodeType":"TryCatchClause","src":"31533:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81150,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31453:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31457:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31453:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81154,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31473:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31465:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81152,"name":"address","nodeType":"ElementaryTypeName","src":"31465:7:165","typeDescriptions":{}}},"id":81155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31465:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81156,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81113,"src":"31480:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81157,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81115,"src":"31507:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81158,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81117,"src":"31518:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81159,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81119,"src":"31522:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81160,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81121,"src":"31526:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81148,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81141,"src":"31433:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31446:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"31433:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31433:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81166,"nodeType":"TryStatement","src":"31429:112:165"},{"assignments":[81168],"declarations":[{"constant":false,"id":81168,"mutability":"mutable","name":"success","nameLocation":"31555:7:165","nodeType":"VariableDeclaration","scope":81208,"src":"31550:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81167,"name":"bool","nodeType":"ElementaryTypeName","src":"31550:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81179,"initialValue":{"arguments":[{"expression":{"id":81171,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31591:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31595:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31591:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81175,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31611:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31603:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81173,"name":"address","nodeType":"ElementaryTypeName","src":"31603:7:165","typeDescriptions":{}}},"id":81176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81177,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81113,"src":"31618:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":81169,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81141,"src":"31565:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31578:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"31565:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31565:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31550:94:165"},{"expression":{"arguments":[{"id":81181,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81168,"src":"31662:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81182,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"31671:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31671:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81180,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31654:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31654:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81185,"nodeType":"ExpressionStatement","src":"31654:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81190,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81111,"src":"31760:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31792:1:165","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":81192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31784:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81191,"name":"address","nodeType":"ElementaryTypeName","src":"31784:7:165","typeDescriptions":{}}},"id":81194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31784:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31760:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81198,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81111,"src":"31810:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31760:70:165","trueExpression":{"expression":{"id":81196,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31797:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31801:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31797:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81200,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80090,"src":"31848:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31848:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31878:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81203,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81113,"src":"31900:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81187,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81129,"src":"31711:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81186,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"31703:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":81188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":81189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31732:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74390,"src":"31703:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81205,"nodeType":"ExpressionStatement","src":"31703:236:165"},{"expression":{"id":81206,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81129,"src":"31957:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81127,"id":81207,"nodeType":"Return","src":"31950:13:165"}]},"baseFunctions":[74943],"documentation":{"id":81105,"nodeType":"StructuredDocumentation","src":"29472:1462:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0d91bf2a","implemented":true,"kind":"function","modifiers":[{"id":81124,"kind":"modifierInvocation","modifierName":{"id":81123,"name":"whenNotPaused","nameLocations":["31212:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"31212:13:165"},"nodeType":"ModifierInvocation","src":"31212:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"30948:34:165","parameters":{"id":81122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81107,"mutability":"mutable","name":"_codeId","nameLocation":"31000:7:165","nodeType":"VariableDeclaration","scope":81209,"src":"30992:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30992:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81109,"mutability":"mutable","name":"_salt","nameLocation":"31025:5:165","nodeType":"VariableDeclaration","scope":81209,"src":"31017:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31017:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81111,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31048:20:165","nodeType":"VariableDeclaration","scope":81209,"src":"31040:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81110,"name":"address","nodeType":"ElementaryTypeName","src":"31040:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81113,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31086:25:165","nodeType":"VariableDeclaration","scope":81209,"src":"31078:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81112,"name":"uint128","nodeType":"ElementaryTypeName","src":"31078:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81115,"mutability":"mutable","name":"_deadline","nameLocation":"31129:9:165","nodeType":"VariableDeclaration","scope":81209,"src":"31121:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81114,"name":"uint256","nodeType":"ElementaryTypeName","src":"31121:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81117,"mutability":"mutable","name":"_v","nameLocation":"31154:2:165","nodeType":"VariableDeclaration","scope":81209,"src":"31148:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81116,"name":"uint8","nodeType":"ElementaryTypeName","src":"31148:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81119,"mutability":"mutable","name":"_r","nameLocation":"31174:2:165","nodeType":"VariableDeclaration","scope":81209,"src":"31166:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31166:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81121,"mutability":"mutable","name":"_s","nameLocation":"31194:2:165","nodeType":"VariableDeclaration","scope":81209,"src":"31186:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31186:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30982:220:165"},"returnParameters":{"id":81127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81209,"src":"31235:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81125,"name":"address","nodeType":"ElementaryTypeName","src":"31235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31234:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81255,"nodeType":"FunctionDefinition","src":"33132:448:165","nodes":[],"body":{"id":81254,"nodeType":"Block","src":"33335:245:165","nodes":[],"statements":[{"assignments":[81226,null],"declarations":[{"constant":false,"id":81226,"mutability":"mutable","name":"mirror","nameLocation":"33354:6:165","nodeType":"VariableDeclaration","scope":81254,"src":"33346:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81225,"name":"address","nodeType":"ElementaryTypeName","src":"33346:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81232,"initialValue":{"arguments":[{"id":81228,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81212,"src":"33380:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81229,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81214,"src":"33389:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33396:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81227,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81631,"src":"33365:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33365:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"33345:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81237,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81216,"src":"33453:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33485:1:165","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":81239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33477:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81238,"name":"address","nodeType":"ElementaryTypeName","src":"33477:7:165","typeDescriptions":{}}},"id":81241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33477:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33453:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81245,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81216,"src":"33503:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33453:70:165","trueExpression":{"expression":{"id":81243,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33490:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33494:6:165","memberName":"sender","nodeType":"MemberAccess","src":"33490:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81247,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81218,"src":"33525:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33540:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33547:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81234,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81226,"src":"33421:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81233,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"33413:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":81235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":81236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33442:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74390,"src":"33413:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81251,"nodeType":"ExpressionStatement","src":"33413:136:165"},{"expression":{"id":81252,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81226,"src":"33567:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81224,"id":81253,"nodeType":"Return","src":"33560:13:165"}]},"baseFunctions":[74957],"documentation":{"id":81210,"nodeType":"StructuredDocumentation","src":"31976:1151:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":81221,"kind":"modifierInvocation","modifierName":{"id":81220,"name":"whenNotPaused","nameLocations":["33303:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"33303:13:165"},"nodeType":"ModifierInvocation","src":"33303:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"33141:29:165","parameters":{"id":81219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81212,"mutability":"mutable","name":"_codeId","nameLocation":"33188:7:165","nodeType":"VariableDeclaration","scope":81255,"src":"33180:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33180:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81214,"mutability":"mutable","name":"_salt","nameLocation":"33213:5:165","nodeType":"VariableDeclaration","scope":81255,"src":"33205:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33205:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81216,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33236:20:165","nodeType":"VariableDeclaration","scope":81255,"src":"33228:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81215,"name":"address","nodeType":"ElementaryTypeName","src":"33228:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81218,"mutability":"mutable","name":"_abiInterface","nameLocation":"33274:13:165","nodeType":"VariableDeclaration","scope":81255,"src":"33266:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81217,"name":"address","nodeType":"ElementaryTypeName","src":"33266:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33170:123:165"},"returnParameters":{"id":81224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81255,"src":"33326:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81222,"name":"address","nodeType":"ElementaryTypeName","src":"33326:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33325:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81361,"nodeType":"FunctionDefinition","src":"35136:1080:165","nodes":[],"body":{"id":81360,"nodeType":"Block","src":"35487:729:165","nodes":[],"statements":[{"assignments":[81282,81285],"declarations":[{"constant":false,"id":81282,"mutability":"mutable","name":"mirror","nameLocation":"35506:6:165","nodeType":"VariableDeclaration","scope":81360,"src":"35498:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81281,"name":"address","nodeType":"ElementaryTypeName","src":"35498:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81285,"mutability":"mutable","name":"router","nameLocation":"35530:6:165","nodeType":"VariableDeclaration","scope":81360,"src":"35514:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81284,"nodeType":"UserDefinedTypeName","pathNode":{"id":81283,"name":"Storage","nameLocations":["35514:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"35514:7:165"},"referencedDeclaration":74495,"src":"35514:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81291,"initialValue":{"arguments":[{"id":81287,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81258,"src":"35555:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81288,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81260,"src":"35564:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35571:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81286,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81631,"src":"35540:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35540:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"35497:80:165"},{"assignments":[81294],"declarations":[{"constant":false,"id":81294,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35601:12:165","nodeType":"VariableDeclaration","scope":81360,"src":"35588:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"},"typeName":{"id":81293,"nodeType":"UserDefinedTypeName","pathNode":{"id":81292,"name":"IWrappedVara","nameLocations":["35588:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75011,"src":"35588:12:165"},"referencedDeclaration":75011,"src":"35588:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81300,"initialValue":{"arguments":[{"expression":{"expression":{"id":81296,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81285,"src":"35629:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35636:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"35629:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35650:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"35629:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81295,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"35616:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":81299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35616:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35588:74:165"},{"clauses":[{"block":{"id":81315,"nodeType":"Block","src":"35774:2:165","statements":[]},"errorName":"","id":81316,"nodeType":"TryCatchClause","src":"35774:2:165"},{"block":{"id":81317,"nodeType":"Block","src":"35783:2:165","statements":[]},"errorName":"","id":81318,"nodeType":"TryCatchClause","src":"35777:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81303,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35697:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35701:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35697:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81307,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35717:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35709:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81305,"name":"address","nodeType":"ElementaryTypeName","src":"35709:7:165","typeDescriptions":{}}},"id":81308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35709:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81309,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81266,"src":"35724:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81310,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81268,"src":"35751:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81311,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81270,"src":"35762:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81312,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81272,"src":"35766:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81313,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81274,"src":"35770:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81301,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"35677:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35690:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"35677:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35677:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81319,"nodeType":"TryStatement","src":"35673:112:165"},{"assignments":[81321],"declarations":[{"constant":false,"id":81321,"mutability":"mutable","name":"success","nameLocation":"35799:7:165","nodeType":"VariableDeclaration","scope":81360,"src":"35794:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81320,"name":"bool","nodeType":"ElementaryTypeName","src":"35794:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81332,"initialValue":{"arguments":[{"expression":{"id":81324,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35835:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35839:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35835:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81328,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35855:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35847:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81326,"name":"address","nodeType":"ElementaryTypeName","src":"35847:7:165","typeDescriptions":{}}},"id":81329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81330,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81266,"src":"35862:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":81322,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"35809:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35822:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"35809:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35809:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35794:94:165"},{"expression":{"arguments":[{"id":81334,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81321,"src":"35906:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81335,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74608,"src":"35915:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35915:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35898:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35898:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81338,"nodeType":"ExpressionStatement","src":"35898:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81343,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81262,"src":"36004:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36036:1:165","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":81345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36028:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81344,"name":"address","nodeType":"ElementaryTypeName","src":"36028:7:165","typeDescriptions":{}}},"id":81347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36028:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36004:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81351,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81262,"src":"36054:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36004:70:165","trueExpression":{"expression":{"id":81349,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36041:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36045:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36041:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81353,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"36092:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36123:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81355,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81266,"src":"36146:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81340,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81282,"src":"35955:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81339,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"35947:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":81341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":81342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35976:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74390,"src":"35947:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81357,"nodeType":"ExpressionStatement","src":"35947:238:165"},{"expression":{"id":81358,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81282,"src":"36203:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81280,"id":81359,"nodeType":"Return","src":"36196:13:165"}]},"baseFunctions":[74981],"documentation":{"id":81256,"nodeType":"StructuredDocumentation","src":"33586:1545:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"ee32004f","implemented":true,"kind":"function","modifiers":[{"id":81277,"kind":"modifierInvocation","modifierName":{"id":81276,"name":"whenNotPaused","nameLocations":["35455:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"35455:13:165"},"nodeType":"ModifierInvocation","src":"35455:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35145:49:165","parameters":{"id":81275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81258,"mutability":"mutable","name":"_codeId","nameLocation":"35212:7:165","nodeType":"VariableDeclaration","scope":81361,"src":"35204:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35204:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81260,"mutability":"mutable","name":"_salt","nameLocation":"35237:5:165","nodeType":"VariableDeclaration","scope":81361,"src":"35229:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35229:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81262,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35260:20:165","nodeType":"VariableDeclaration","scope":81361,"src":"35252:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81261,"name":"address","nodeType":"ElementaryTypeName","src":"35252:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81264,"mutability":"mutable","name":"_abiInterface","nameLocation":"35298:13:165","nodeType":"VariableDeclaration","scope":81361,"src":"35290:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81263,"name":"address","nodeType":"ElementaryTypeName","src":"35290:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81266,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35329:25:165","nodeType":"VariableDeclaration","scope":81361,"src":"35321:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81265,"name":"uint128","nodeType":"ElementaryTypeName","src":"35321:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81268,"mutability":"mutable","name":"_deadline","nameLocation":"35372:9:165","nodeType":"VariableDeclaration","scope":81361,"src":"35364:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81267,"name":"uint256","nodeType":"ElementaryTypeName","src":"35364:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81270,"mutability":"mutable","name":"_v","nameLocation":"35397:2:165","nodeType":"VariableDeclaration","scope":81361,"src":"35391:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81269,"name":"uint8","nodeType":"ElementaryTypeName","src":"35391:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81272,"mutability":"mutable","name":"_r","nameLocation":"35417:2:165","nodeType":"VariableDeclaration","scope":81361,"src":"35409:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35409:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81274,"mutability":"mutable","name":"_s","nameLocation":"35437:2:165","nodeType":"VariableDeclaration","scope":81361,"src":"35429:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35429:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35194:251:165"},"returnParameters":{"id":81280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81361,"src":"35478:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81278,"name":"address","nodeType":"ElementaryTypeName","src":"35478:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35477:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81528,"nodeType":"FunctionDefinition","src":"36677:2151:165","nodes":[],"body":{"id":81527,"nodeType":"Block","src":"36853:1975:165","nodes":[],"statements":[{"assignments":[81378],"declarations":[{"constant":false,"id":81378,"mutability":"mutable","name":"router","nameLocation":"36879:6:165","nodeType":"VariableDeclaration","scope":81527,"src":"36863:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81377,"nodeType":"UserDefinedTypeName","pathNode":{"id":81376,"name":"Storage","nameLocations":["36863:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"36863:7:165"},"referencedDeclaration":74495,"src":"36863:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81379,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"36888:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36888:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36863:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81383,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"36916:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36923:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"36916:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36936:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"36916:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36952:1:165","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":81387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36944:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36944:7:165","typeDescriptions":{}}},"id":81389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36944:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36916:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81391,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"36956:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36956:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36908:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36908:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81394,"nodeType":"ExpressionStatement","src":"36908:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81395,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"37154:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37161:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74466,"src":"37154:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37173:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37154:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81422,"nodeType":"IfStatement","src":"37150:295:165","trueBody":{"id":81421,"nodeType":"Block","src":"37176:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81402,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37222:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37229:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"37222:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81404,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37240:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37247:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"37240:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81400,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"37198:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37203:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83683,"src":"37198:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37198:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81407,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74610,"src":"37256:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37256:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37190:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37190:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81410,"nodeType":"ExpressionStatement","src":"37190:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81412,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37367:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37373:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"37367:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81414,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37392:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"37385:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37367:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81417,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74612,"src":"37408:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37408:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37359:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37359:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81420,"nodeType":"ExpressionStatement","src":"37359:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81424,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"37558:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37565:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"37558:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37586:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83217,"src":"37558:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81427,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37594:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37601:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"37594:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37558:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81430,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74614,"src":"37629:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37629:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37537:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37537:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81433,"nodeType":"ExpressionStatement","src":"37537:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81435,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"37693:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37700:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"37693:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37721:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83219,"src":"37693:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81438,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37741:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"37734:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37693:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81441,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74616,"src":"37757:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37757:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37685:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37685:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81444,"nodeType":"ExpressionStatement","src":"37685:97:165"},{"assignments":[81446],"declarations":[{"constant":false,"id":81446,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37801:20:165","nodeType":"VariableDeclaration","scope":81527,"src":"37793:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37793:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81451,"initialValue":{"arguments":[{"id":81448,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"37837:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81449,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37845:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81447,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81710,"src":"37824:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74495_storage_ptr_$_t_struct$_BatchCommitment_$83174_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37824:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37793:59:165"},{"assignments":[81453],"declarations":[{"constant":false,"id":81453,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37870:20:165","nodeType":"VariableDeclaration","scope":81527,"src":"37862:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37862:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81458,"initialValue":{"arguments":[{"id":81455,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"37906:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81456,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37914:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81454,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81852,"src":"37893:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74495_storage_ptr_$_t_struct$_BatchCommitment_$83174_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37893:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37862:59:165"},{"assignments":[81460],"declarations":[{"constant":false,"id":81460,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37939:22:165","nodeType":"VariableDeclaration","scope":81527,"src":"37931:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37931:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81465,"initialValue":{"arguments":[{"id":81462,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"37979:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81463,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"37987:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81461,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82009,"src":"37964:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74495_storage_ptr_$_t_struct$_BatchCommitment_$83174_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37964:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37931:63:165"},{"assignments":[81467],"declarations":[{"constant":false,"id":81467,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"38012:25:165","nodeType":"VariableDeclaration","scope":81527,"src":"38004:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81472,"initialValue":{"arguments":[{"id":81469,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"38058:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81470,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38066:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81468,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82157,"src":"38040:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74495_storage_ptr_$_t_struct$_BatchCommitment_$83174_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38040:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38004:69:165"},{"assignments":[81474],"declarations":[{"constant":false,"id":81474,"mutability":"mutable","name":"_batchHash","nameLocation":"38092:10:165","nodeType":"VariableDeclaration","scope":81527,"src":"38084:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38084:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81490,"initialValue":{"arguments":[{"expression":{"id":81477,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38143:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38150:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"38143:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81479,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38173:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38180:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"38173:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81481,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38208:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38215:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"38208:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81483,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38255:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38262:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"38255:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81485,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81446,"src":"38282:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81486,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81453,"src":"38316:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81487,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81460,"src":"38350:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81488,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81467,"src":"38386:25:165","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81475,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"38105:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38110:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83521,"src":"38105:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38105:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38084:337:165"},{"expression":{"id":81497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81491,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"38432:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38439:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"38432:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38460:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83217,"src":"38432:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81496,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81474,"src":"38467:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38432:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81498,"nodeType":"ExpressionStatement","src":"38432:45:165"},{"expression":{"id":81506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81499,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"38487:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38494:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74474,"src":"38487:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83220_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38515:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83219,"src":"38487:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81504,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38527:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38534:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"38527:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38487:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81507,"nodeType":"ExpressionStatement","src":"38487:61:165"},{"eventCall":{"arguments":[{"id":81509,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81474,"src":"38579:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81508,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74500,"src":"38564:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38564:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81511,"nodeType":"EmitStatement","src":"38559:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81515,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"38665:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81516,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79643,"src":"38673:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81517,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81474,"src":"38692:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81518,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81368,"src":"38704:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},{"id":81519,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81371,"src":"38720:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81520,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81365,"src":"38733:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38740:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"38733:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81513,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"38622:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38627:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":83969,"src":"38622:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74495_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83395_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":81522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38622:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81523,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"38782:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38782:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81512,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38601:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38601:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81526,"nodeType":"ExpressionStatement","src":"38601:220:165"}]},"baseFunctions":[74994],"documentation":{"id":81362,"nodeType":"StructuredDocumentation","src":"36222:450:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\n @param _batch The batch commitment data.\n @param _signatureType The type of signature to validate.\n @param _signatures The signatures for the batch commitment."},"functionSelector":"e9a28a60","implemented":true,"kind":"function","modifiers":[{"id":81374,"kind":"modifierInvocation","modifierName":{"id":81373,"name":"nonReentrant","nameLocations":["36840:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"36840:12:165"},"nodeType":"ModifierInvocation","src":"36840:12:165"}],"name":"commitBatch","nameLocation":"36686:11:165","parameters":{"id":81372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81365,"mutability":"mutable","name":"_batch","nameLocation":"36737:6:165","nodeType":"VariableDeclaration","scope":81528,"src":"36707:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81364,"nodeType":"UserDefinedTypeName","pathNode":{"id":81363,"name":"Gear.BatchCommitment","nameLocations":["36707:4:165","36712:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83174,"src":"36707:20:165"},"referencedDeclaration":83174,"src":"36707:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81368,"mutability":"mutable","name":"_signatureType","nameLocation":"36772:14:165","nodeType":"VariableDeclaration","scope":81528,"src":"36753:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"},"typeName":{"id":81367,"nodeType":"UserDefinedTypeName","pathNode":{"id":81366,"name":"Gear.SignatureType","nameLocations":["36753:4:165","36758:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83395,"src":"36753:18:165"},"referencedDeclaration":83395,"src":"36753:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83395","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81371,"mutability":"mutable","name":"_signatures","nameLocation":"36813:11:165","nodeType":"VariableDeclaration","scope":81528,"src":"36796:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81369,"name":"bytes","nodeType":"ElementaryTypeName","src":"36796:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81370,"nodeType":"ArrayTypeName","src":"36796:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36697:133:165"},"returnParameters":{"id":81375,"nodeType":"ParameterList","parameters":[],"src":"36853:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81631,"nodeType":"FunctionDefinition","src":"38872:934:165","nodes":[],"body":{"id":81630,"nodeType":"Block","src":"38986:820:165","nodes":[],"statements":[{"assignments":[81544],"declarations":[{"constant":false,"id":81544,"mutability":"mutable","name":"router","nameLocation":"39012:6:165","nodeType":"VariableDeclaration","scope":81630,"src":"38996:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81543,"nodeType":"UserDefinedTypeName","pathNode":{"id":81542,"name":"Storage","nameLocations":["38996:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"38996:7:165"},"referencedDeclaration":74495,"src":"38996:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81547,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81545,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"39021:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39021:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38996:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81549,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81544,"src":"39048:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39055:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"39048:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39068:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"39048:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39084:1:165","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":81553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39076:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39076:7:165","typeDescriptions":{}}},"id":81555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39076:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39048:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81557,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"39088:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39088:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81548,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39040:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39040:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81560,"nodeType":"ExpressionStatement","src":"39040:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81544,"src":"39141:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39148:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"39141:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39161:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"39141:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81566,"indexExpression":{"id":81565,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"39167:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39141:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81567,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"39179:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39184:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"39179:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":81569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39194:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83213,"src":"39179:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"39141:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81571,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74606,"src":"39205:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39205:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39133:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39133:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81574,"nodeType":"ExpressionStatement","src":"39133:91:165"},{"assignments":[81576],"declarations":[{"constant":false,"id":81576,"mutability":"mutable","name":"salt","nameLocation":"39393:4:165","nodeType":"VariableDeclaration","scope":81630,"src":"39385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81582,"initialValue":{"arguments":[{"id":81579,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"39435:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81580,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81532,"src":"39444:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81577,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"39400:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39407:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"39400:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39400:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39385:65:165"},{"assignments":[81584],"declarations":[{"constant":false,"id":81584,"mutability":"mutable","name":"actorId","nameLocation":"39468:7:165","nodeType":"VariableDeclaration","scope":81630,"src":"39460:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81583,"name":"address","nodeType":"ElementaryTypeName","src":"39460:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81603,"initialValue":{"condition":{"id":81585,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81534,"src":"39478:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81598,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39601:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39593:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81596,"name":"address","nodeType":"ElementaryTypeName","src":"39593:7:165","typeDescriptions":{}}},"id":81599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39593:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81600,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81576,"src":"39608:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81594,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82903,"src":"39567:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$82903_$","typeString":"type(library Clones)"}},"id":81595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39574:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82672,"src":"39567:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39567:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39478:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81590,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39540:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82507","typeString":"contract Router"}],"id":81589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39532:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81588,"name":"address","nodeType":"ElementaryTypeName","src":"39532:7:165","typeDescriptions":{}}},"id":81591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39532:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81592,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81576,"src":"39547:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81586,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82987,"src":"39501:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$82987_$","typeString":"type(library ClonesSmall)"}},"id":81587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39513:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82925,"src":"39501:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39501:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39460:153:165"},{"expression":{"id":81612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81604,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81544,"src":"39624:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39631:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"39624:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39644:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83267,"src":"39624:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81610,"indexExpression":{"id":81607,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81584,"src":"39653:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39624:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81611,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"39664:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39624:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81613,"nodeType":"ExpressionStatement","src":"39624:47:165"},{"expression":{"id":81619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39681:35:165","subExpression":{"expression":{"expression":{"id":81614,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81544,"src":"39681:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39688:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"39681:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39701:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83270,"src":"39681:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81620,"nodeType":"ExpressionStatement","src":"39681:35:165"},{"eventCall":{"arguments":[{"id":81622,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81584,"src":"39747:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81623,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"39756:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81621,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74541,"src":"39732:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39732:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81625,"nodeType":"EmitStatement","src":"39727:37:165"},{"expression":{"components":[{"id":81626,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81584,"src":"39783:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81544,"src":"39792:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81628,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39782:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81541,"id":81629,"nodeType":"Return","src":"39775:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38881:14:165","parameters":{"id":81535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81530,"mutability":"mutable","name":"_codeId","nameLocation":"38904:7:165","nodeType":"VariableDeclaration","scope":81631,"src":"38896:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38896:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81532,"mutability":"mutable","name":"_salt","nameLocation":"38921:5:165","nodeType":"VariableDeclaration","scope":81631,"src":"38913:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81534,"mutability":"mutable","name":"_isSmall","nameLocation":"38933:8:165","nodeType":"VariableDeclaration","scope":81631,"src":"38928:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81533,"name":"bool","nodeType":"ElementaryTypeName","src":"38928:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38895:47:165"},"returnParameters":{"id":81541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81631,"src":"38960:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81536,"name":"address","nodeType":"ElementaryTypeName","src":"38960:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81631,"src":"38969:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81539,"nodeType":"UserDefinedTypeName","pathNode":{"id":81538,"name":"Storage","nameLocations":["38969:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"38969:7:165"},"referencedDeclaration":74495,"src":"38969:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38959:26:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81710,"nodeType":"FunctionDefinition","src":"39812:846:165","nodes":[],"body":{"id":81709,"nodeType":"Block","src":"39922:736:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81643,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81637,"src":"39940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39947:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"39940:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39963:6:165","memberName":"length","nodeType":"MemberAccess","src":"39940:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39973:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39940:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81648,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74618,"src":"39976:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39976:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39932:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39932:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81651,"nodeType":"ExpressionStatement","src":"39932:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81652,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81637,"src":"40017:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40024:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"40017:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40040:6:165","memberName":"length","nodeType":"MemberAccess","src":"40017:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40050:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40017:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81662,"nodeType":"IfStatement","src":"40013:177:165","trueBody":{"id":81661,"nodeType":"Block","src":"40053:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40176:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81657,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40166:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81641,"id":81660,"nodeType":"Return","src":"40159:20:165"}]}},{"assignments":[81667],"declarations":[{"constant":false,"id":81667,"mutability":"mutable","name":"_commitment","nameLocation":"40230:11:165","nodeType":"VariableDeclaration","scope":81709,"src":"40200:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81666,"nodeType":"UserDefinedTypeName","pathNode":{"id":81665,"name":"Gear.ChainCommitment","nameLocations":["40200:4:165","40205:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83126,"src":"40200:20:165"},"referencedDeclaration":83126,"src":"40200:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81672,"initialValue":{"baseExpression":{"expression":{"id":81668,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81637,"src":"40244:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40251:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"40244:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83126_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81671,"indexExpression":{"hexValue":"30","id":81670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40267:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40244:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40200:69:165"},{"assignments":[81674],"declarations":[{"constant":false,"id":81674,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40288:16:165","nodeType":"VariableDeclaration","scope":81709,"src":"40280:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40280:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81680,"initialValue":{"arguments":[{"id":81676,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81634,"src":"40326:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81677,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81667,"src":"40334:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40346:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"40334:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81675,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82277,"src":"40307:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74495_storage_ptr_$_t_array$_t_struct$_StateTransition_$83329_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40307:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40280:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81682,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81667,"src":"40386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40398:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"40386:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81681,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74505,"src":"40374:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40374:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81685,"nodeType":"EmitStatement","src":"40369:34:165"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81686,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81667,"src":"40417:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40429:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"40417:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40461:1:165","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":81689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40453:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40453:7:165","typeDescriptions":{}}},"id":81691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40453:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40417:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81699,"nodeType":"IfStatement","src":"40413:127:165","trueBody":{"id":81698,"nodeType":"Block","src":"40465:75:165","statements":[{"eventCall":{"arguments":[{"expression":{"id":81694,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81667,"src":"40496:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40508:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"40496:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81693,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74510,"src":"40484:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40484:45:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81697,"nodeType":"EmitStatement","src":"40479:50:165"}]}},{"expression":{"arguments":[{"id":81702,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81674,"src":"40582:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81703,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81667,"src":"40600:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40612:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"40600:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81705,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81667,"src":"40618:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83126_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40630:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"40618:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81700,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"40557:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40562:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83417,"src":"40557:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40557:94:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81641,"id":81708,"nodeType":"Return","src":"40550:101:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39821:12:165","parameters":{"id":81638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81634,"mutability":"mutable","name":"router","nameLocation":"39850:6:165","nodeType":"VariableDeclaration","scope":81710,"src":"39834:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81633,"nodeType":"UserDefinedTypeName","pathNode":{"id":81632,"name":"Storage","nameLocations":["39834:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"39834:7:165"},"referencedDeclaration":74495,"src":"39834:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81637,"mutability":"mutable","name":"_batch","nameLocation":"39888:6:165","nodeType":"VariableDeclaration","scope":81710,"src":"39858:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81636,"nodeType":"UserDefinedTypeName","pathNode":{"id":81635,"name":"Gear.BatchCommitment","nameLocations":["39858:4:165","39863:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83174,"src":"39858:20:165"},"referencedDeclaration":83174,"src":"39858:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39833:62:165"},"returnParameters":{"id":81641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81710,"src":"39913:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39912:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81852,"nodeType":"FunctionDefinition","src":"40664:1402:165","nodes":[],"body":{"id":81851,"nodeType":"Block","src":"40774:1292:165","nodes":[],"statements":[{"assignments":[81722],"declarations":[{"constant":false,"id":81722,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40792:18:165","nodeType":"VariableDeclaration","scope":81851,"src":"40784:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81721,"name":"uint256","nodeType":"ElementaryTypeName","src":"40784:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81726,"initialValue":{"expression":{"expression":{"id":81723,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81716,"src":"40813:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40820:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83163,"src":"40813:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83113_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40836:6:165","memberName":"length","nodeType":"MemberAccess","src":"40813:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40784:58:165"},{"assignments":[81728],"declarations":[{"constant":false,"id":81728,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40860:23:165","nodeType":"VariableDeclaration","scope":81851,"src":"40852:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81727,"name":"uint256","nodeType":"ElementaryTypeName","src":"40852:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81732,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81729,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"40886:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40907:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40886:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40852:57:165"},{"assignments":[81734],"declarations":[{"constant":false,"id":81734,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40927:18:165","nodeType":"VariableDeclaration","scope":81851,"src":"40919:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81733,"name":"uint256","nodeType":"ElementaryTypeName","src":"40919:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81739,"initialValue":{"arguments":[{"id":81737,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81728,"src":"40964:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81735,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40948:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40955:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40948:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40948:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40919:69:165"},{"assignments":[81741],"declarations":[{"constant":false,"id":81741,"mutability":"mutable","name":"offset","nameLocation":"41006:6:165","nodeType":"VariableDeclaration","scope":81851,"src":"40998:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81740,"name":"uint256","nodeType":"ElementaryTypeName","src":"40998:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81743,"initialValue":{"hexValue":"30","id":81742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41015:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40998:18:165"},{"body":{"id":81842,"nodeType":"Block","src":"41076:884:165","statements":[{"assignments":[81758],"declarations":[{"constant":false,"id":81758,"mutability":"mutable","name":"_commitment","nameLocation":"41119:11:165","nodeType":"VariableDeclaration","scope":81842,"src":"41090:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81757,"nodeType":"UserDefinedTypeName","pathNode":{"id":81756,"name":"Gear.CodeCommitment","nameLocations":["41090:4:165","41095:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":83113,"src":"41090:19:165"},"referencedDeclaration":83113,"src":"41090:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81763,"initialValue":{"baseExpression":{"expression":{"id":81759,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81716,"src":"41133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41140:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83163,"src":"41133:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83113_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81762,"indexExpression":{"id":81761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81745,"src":"41156:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41133:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41090:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"},"id":81774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81765,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81713,"src":"41198:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41205:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"41198:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41218:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"41198:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81770,"indexExpression":{"expression":{"id":81768,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41224:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41236:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83109,"src":"41224:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41198:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81771,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"41243:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41248:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"41243:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":81773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41258:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83211,"src":"41243:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"41198:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81775,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"41295:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41295:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41173:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41173:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81778,"nodeType":"ExpressionStatement","src":"41173:164:165"},{"condition":{"expression":{"id":81779,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41356:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41368:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83112,"src":"41356:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81810,"nodeType":"Block","src":"41541:81:165","statements":[{"expression":{"id":81808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41559:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81802,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81713,"src":"41566:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41573:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"41566:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41586:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"41566:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81807,"indexExpression":{"expression":{"id":81805,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41604:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83109,"src":"41592:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41566:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81809,"nodeType":"ExpressionStatement","src":"41559:48:165"}]},"id":81811,"nodeType":"IfStatement","src":"41352:270:165","trueBody":{"id":81801,"nodeType":"Block","src":"41375:160:165","statements":[{"expression":{"id":81792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81781,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81713,"src":"41393:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41400:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"41393:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41413:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"41393:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83214_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81788,"indexExpression":{"expression":{"id":81784,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41419:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41431:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83109,"src":"41419:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41393:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81789,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"41437:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41442:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"41437:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83214_$","typeString":"type(enum Gear.CodeState)"}},"id":81791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41452:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83213,"src":"41437:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"src":"41393:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83214","typeString":"enum Gear.CodeState"}},"id":81793,"nodeType":"ExpressionStatement","src":"41393:68:165"},{"expression":{"id":81799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41479:41:165","subExpression":{"expression":{"expression":{"id":81794,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81713,"src":"41479:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41486:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"41479:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41499:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83273,"src":"41479:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81800,"nodeType":"ExpressionStatement","src":"41479:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81813,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41658:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41670:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83109,"src":"41658:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81815,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41674:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41686:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83112,"src":"41674:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81812,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"41641:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41641:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81818,"nodeType":"EmitStatement","src":"41636:56:165"},{"assignments":[81820],"declarations":[{"constant":false,"id":81820,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41715:18:165","nodeType":"VariableDeclaration","scope":81842,"src":"41707:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41707:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81828,"initialValue":{"arguments":[{"expression":{"id":81823,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41760:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41772:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83109,"src":"41760:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81825,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81758,"src":"41776:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83113_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41788:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83112,"src":"41776:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81821,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"41736:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41741:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83434,"src":"41736:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41736:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41707:87:165"},{"expression":{"arguments":[{"id":81832,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"41834:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81833,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81741,"src":"41854:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81834,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81820,"src":"41862:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81829,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41808:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41815:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"41808:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41808:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81836,"nodeType":"ExpressionStatement","src":"41808:73:165"},{"id":81841,"nodeType":"UncheckedBlock","src":"41895:55:165","statements":[{"expression":{"id":81839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81837,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81741,"src":"41923:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41933:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41923:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81840,"nodeType":"ExpressionStatement","src":"41923:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81748,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81745,"src":"41047:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81749,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"41051:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41047:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81843,"initializationExpression":{"assignments":[81745],"declarations":[{"constant":false,"id":81745,"mutability":"mutable","name":"i","nameLocation":"41040:1:165","nodeType":"VariableDeclaration","scope":81843,"src":"41032:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81744,"name":"uint256","nodeType":"ElementaryTypeName","src":"41032:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81747,"initialValue":{"hexValue":"30","id":81746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41044:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"41032:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41071:3:165","subExpression":{"id":81751,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81745,"src":"41071:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81753,"nodeType":"ExpressionStatement","src":"41071:3:165"},"nodeType":"ForStatement","src":"41027:933:165"},{"expression":{"arguments":[{"id":81846,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42012:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42032:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81848,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81728,"src":"42035:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81844,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"41977:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41984:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"41977:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41977:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81720,"id":81850,"nodeType":"Return","src":"41970:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40673:12:165","parameters":{"id":81717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81713,"mutability":"mutable","name":"router","nameLocation":"40702:6:165","nodeType":"VariableDeclaration","scope":81852,"src":"40686:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81712,"nodeType":"UserDefinedTypeName","pathNode":{"id":81711,"name":"Storage","nameLocations":["40686:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"40686:7:165"},"referencedDeclaration":74495,"src":"40686:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81716,"mutability":"mutable","name":"_batch","nameLocation":"40740:6:165","nodeType":"VariableDeclaration","scope":81852,"src":"40710:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81715,"nodeType":"UserDefinedTypeName","pathNode":{"id":81714,"name":"Gear.BatchCommitment","nameLocations":["40710:4:165","40715:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83174,"src":"40710:20:165"},"referencedDeclaration":83174,"src":"40710:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40685:62:165"},"returnParameters":{"id":81720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81852,"src":"40765:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40765:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40764:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82009,"nodeType":"FunctionDefinition","src":"42108:1705:165","nodes":[],"body":{"id":82008,"nodeType":"Block","src":"42220:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81864,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81858,"src":"42238:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42245:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83168,"src":"42238:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83184_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42263:6:165","memberName":"length","nodeType":"MemberAccess","src":"42238:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42273:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42238:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81869,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"42276:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42276:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42230:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42230:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81872,"nodeType":"ExpressionStatement","src":"42230:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81873,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81858,"src":"42319:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42326:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83168,"src":"42319:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83184_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42344:6:165","memberName":"length","nodeType":"MemberAccess","src":"42319:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42354:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42319:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81883,"nodeType":"IfStatement","src":"42315:179:165","trueBody":{"id":81882,"nodeType":"Block","src":"42357:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42480:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81878,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42470:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42470:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81862,"id":81881,"nodeType":"Return","src":"42463:20:165"}]}},{"assignments":[81888],"declarations":[{"constant":false,"id":81888,"mutability":"mutable","name":"_commitment","nameLocation":"42536:11:165","nodeType":"VariableDeclaration","scope":82008,"src":"42504:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81887,"nodeType":"UserDefinedTypeName","pathNode":{"id":81886,"name":"Gear.RewardsCommitment","nameLocations":["42504:4:165","42509:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":83184,"src":"42504:22:165"},"referencedDeclaration":83184,"src":"42504:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81893,"initialValue":{"baseExpression":{"expression":{"id":81889,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81858,"src":"42550:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42557:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83168,"src":"42550:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83184_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81892,"indexExpression":{"hexValue":"30","id":81891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42575:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42550:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42504:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81895,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"42596:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42608:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"42596:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81897,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81858,"src":"42620:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42627:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"42620:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42596:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81900,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74626,"src":"42643:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42643:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81894,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42588:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42588:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81903,"nodeType":"ExpressionStatement","src":"42588:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81905,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"42699:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42711:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"42699:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81907,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"42724:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42731:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"42724:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42744:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"42724:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42699:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81911,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74628,"src":"42755:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42755:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81904,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42691:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42691:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81914,"nodeType":"ExpressionStatement","src":"42691:99:165"},{"assignments":[81916],"declarations":[{"constant":false,"id":81916,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42809:18:165","nodeType":"VariableDeclaration","scope":82008,"src":"42801:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81915,"name":"uint256","nodeType":"ElementaryTypeName","src":"42801:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81923,"initialValue":{"arguments":[{"id":81919,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"42846:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81920,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"42854:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42866:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"42854:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81917,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"42830:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42835:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84177,"src":"42830:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42830:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42801:75:165"},{"assignments":[81925],"declarations":[{"constant":false,"id":81925,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42894:13:165","nodeType":"VariableDeclaration","scope":82008,"src":"42886:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81924,"name":"uint256","nodeType":"ElementaryTypeName","src":"42886:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81932,"initialValue":{"arguments":[{"id":81928,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"42926:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81929,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81858,"src":"42934:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42941:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"42934:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81926,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"42910:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":81927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42915:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84177,"src":"42910:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42910:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42886:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81934,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81916,"src":"42975:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81935,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81925,"src":"42996:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42975:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81937,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74630,"src":"43011:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43011:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81933,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42967:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42967:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81940,"nodeType":"ExpressionStatement","src":"42967:78:165"},{"assignments":[81942],"declarations":[{"constant":false,"id":81942,"mutability":"mutable","name":"_middleware","nameLocation":"43064:11:165","nodeType":"VariableDeclaration","scope":82008,"src":"43056:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81941,"name":"address","nodeType":"ElementaryTypeName","src":"43056:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81946,"initialValue":{"expression":{"expression":{"id":81943,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"43078:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43085:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"43078:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43099:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":83104,"src":"43078:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43056:53:165"},{"assignments":[81948],"declarations":[{"constant":false,"id":81948,"mutability":"mutable","name":"success","nameLocation":"43124:7:165","nodeType":"VariableDeclaration","scope":82008,"src":"43119:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81947,"name":"bool","nodeType":"ElementaryTypeName","src":"43119:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81964,"initialValue":{"arguments":[{"id":81955,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81942,"src":"43202:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81956,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43215:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43227:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"43215:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83190_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43237:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"43215:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81959,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43246:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43258:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83181,"src":"43246:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43266:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83197,"src":"43246:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43215:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":81950,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"43147:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43154:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"43147:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43168:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"43147:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81949,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75011,"src":"43134:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75011_$","typeString":"type(contract IWrappedVara)"}},"id":81953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75011","typeString":"contract IWrappedVara"}},"id":81954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43194:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"43134:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"43119:159:165"},{"expression":{"arguments":[{"id":81966,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81948,"src":"43296:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81967,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"43305:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43305:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43288:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43288:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81970,"nodeType":"ExpressionStatement","src":"43288:38:165"},{"assignments":[81972],"declarations":[{"constant":false,"id":81972,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43345:20:165","nodeType":"VariableDeclaration","scope":82008,"src":"43337:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43337:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81987,"initialValue":{"arguments":[{"expression":{"expression":{"id":81977,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"43449:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43456:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74478,"src":"43449:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83105_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43470:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83101,"src":"43449:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81980,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43483:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43495:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"43483:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83190_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43505:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"43483:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81983,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43513:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43525:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"43513:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83190_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43535:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83189,"src":"43513:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":81974,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81942,"src":"43380:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81973,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43368:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43406:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"43368:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":81986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43337:216:165"},{"assignments":[81989],"declarations":[{"constant":false,"id":81989,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43572:18:165","nodeType":"VariableDeclaration","scope":82008,"src":"43564:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43564:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81999,"initialValue":{"arguments":[{"expression":{"id":81994,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43654:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43666:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83181,"src":"43654:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81996,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43675:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43687:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"43675:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83200_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81991,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81942,"src":"43617:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81990,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43605:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43630:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"43605:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83200_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43564:133:165"},{"expression":{"arguments":[{"id":82002,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81972,"src":"43742:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":82003,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81989,"src":"43764:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":82004,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81888,"src":"43784:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83184_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":82005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43796:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"43784:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":82000,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"43715:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":82001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43720:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83456,"src":"43715:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":82006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43715:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81862,"id":82007,"nodeType":"Return","src":"43708:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"42117:14:165","parameters":{"id":81859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81855,"mutability":"mutable","name":"router","nameLocation":"42148:6:165","nodeType":"VariableDeclaration","scope":82009,"src":"42132:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81854,"nodeType":"UserDefinedTypeName","pathNode":{"id":81853,"name":"Storage","nameLocations":["42132:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"42132:7:165"},"referencedDeclaration":74495,"src":"42132:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81858,"mutability":"mutable","name":"_batch","nameLocation":"42186:6:165","nodeType":"VariableDeclaration","scope":82009,"src":"42156:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81857,"nodeType":"UserDefinedTypeName","pathNode":{"id":81856,"name":"Gear.BatchCommitment","nameLocations":["42156:4:165","42161:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83174,"src":"42156:20:165"},"referencedDeclaration":83174,"src":"42156:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"42131:62:165"},"returnParameters":{"id":81862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82009,"src":"42211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42211:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42210:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82157,"nodeType":"FunctionDefinition","src":"43880:1705:165","nodes":[],"body":{"id":82156,"nodeType":"Block","src":"43995:1590:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82022,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"44013:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":82023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44020:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83173,"src":"44013:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83140_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44041:6:165","memberName":"length","nodeType":"MemberAccess","src":"44013:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":82025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44013:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82027,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74634,"src":"44054:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44054:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82021,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44005:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44005:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82030,"nodeType":"ExpressionStatement","src":"44005:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82031,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"44100:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":82032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44107:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83173,"src":"44100:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83140_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":82033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44128:6:165","memberName":"length","nodeType":"MemberAccess","src":"44100:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":82034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44138:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44100:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82041,"nodeType":"IfStatement","src":"44096:182:165","trueBody":{"id":82040,"nodeType":"Block","src":"44141:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":82037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44264:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":82036,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44254:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":82038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44254:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82020,"id":82039,"nodeType":"Return","src":"44247:20:165"}]}},{"assignments":[82046],"declarations":[{"constant":false,"id":82046,"mutability":"mutable","name":"_commitment","nameLocation":"44323:11:165","nodeType":"VariableDeclaration","scope":82156,"src":"44288:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":82045,"nodeType":"UserDefinedTypeName","pathNode":{"id":82044,"name":"Gear.ValidatorsCommitment","nameLocations":["44288:4:165","44293:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":83140,"src":"44288:25:165"},"referencedDeclaration":83140,"src":"44288:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":82051,"initialValue":{"baseExpression":{"expression":{"id":82047,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"44337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":82048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44344:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83173,"src":"44337:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83140_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":82050,"indexExpression":{"hexValue":"30","id":82049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44365:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44337:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44288:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82053,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"44386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44398:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83137,"src":"44386:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44409:6:165","memberName":"length","nodeType":"MemberAccess","src":"44386:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44418:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44386:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82058,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74636,"src":"44421:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44421:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82052,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44378:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44378:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82061,"nodeType":"ExpressionStatement","src":"44378:65:165"},{"assignments":[82063],"declarations":[{"constant":false,"id":82063,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44516:15:165","nodeType":"VariableDeclaration","scope":82156,"src":"44508:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82062,"name":"uint256","nodeType":"ElementaryTypeName","src":"44508:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82075,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82064,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44535:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44541:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44535:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":82066,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"44553:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44560:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"44553:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44573:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"44553:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44535:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82070,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44534:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":82071,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"44586:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44593:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"44586:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44603:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83332,"src":"44586:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44534:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44508:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82077,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"44625:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44637:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"44625:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82079,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82063,"src":"44649:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":82080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44667:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44649:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44625:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82083,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74638,"src":"44670:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44670:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82076,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44617:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44617:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82086,"nodeType":"ExpressionStatement","src":"44617:76:165"},{"assignments":[82088],"declarations":[{"constant":false,"id":82088,"mutability":"mutable","name":"nextEraStart","nameLocation":"44712:12:165","nodeType":"VariableDeclaration","scope":82156,"src":"44704:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82087,"name":"uint256","nodeType":"ElementaryTypeName","src":"44704:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82099,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82089,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"44727:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44734:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"44727:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44747:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83233,"src":"44727:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82092,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"44759:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44766:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"44759:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44776:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83332,"src":"44759:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":82095,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"44782:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44794:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"44782:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44759:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44727:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44704:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82101,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44820:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44826:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44820:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82103,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82088,"src":"44839:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":82104,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"44854:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44861:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74490,"src":"44854:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83337_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44871:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83334,"src":"44854:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44839:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44820:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82109,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74640,"src":"44881:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44881:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82100,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44812:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44812:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82112,"nodeType":"ExpressionStatement","src":"44812:90:165"},{"assignments":[82117],"declarations":[{"constant":false,"id":82117,"mutability":"mutable","name":"_validators","nameLocation":"44984:11:165","nodeType":"VariableDeclaration","scope":82156,"src":"44960:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82116,"nodeType":"UserDefinedTypeName","pathNode":{"id":82115,"name":"Gear.Validators","nameLocations":["44960:4:165","44965:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"44960:15:165"},"referencedDeclaration":83082,"src":"44960:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":82122,"initialValue":{"arguments":[{"id":82120,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"45025:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82118,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"44998:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":82119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45003:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":84013,"src":"44998:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74495_storage_ptr_$returns$_t_struct$_Validators_$83082_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44998:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44960:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82124,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82117,"src":"45050:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45062:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83081,"src":"45050:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82126,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45081:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45087:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45081:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45050:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82129,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"45098:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45098:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82123,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45042:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45042:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82132,"nodeType":"ExpressionStatement","src":"45042:85:165"},{"expression":{"arguments":[{"id":82134,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82117,"src":"45220:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":82135,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"45245:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45257:22:165","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83129,"src":"45245:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":82137,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"45293:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45305:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83132,"src":"45293:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":82139,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"45338:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45350:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":83134,"src":"45338:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":82141,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"45397:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45409:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83137,"src":"45397:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":82143,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82088,"src":"45433:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82133,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82394,"src":"45190:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$83082_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$83061_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":82144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45190:265:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82145,"nodeType":"ExpressionStatement","src":"45190:265:165"},{"eventCall":{"arguments":[{"expression":{"id":82147,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"45497:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45509:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"45497:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82146,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74527,"src":"45471:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":82149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45471:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82150,"nodeType":"EmitStatement","src":"45466:52:165"},{"expression":{"arguments":[{"id":82153,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82046,"src":"45566:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83140_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":82151,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84267,"src":"45536:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84267_$","typeString":"type(library Gear)"}},"id":82152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45541:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83484,"src":"45536:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$83140_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":82154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45536:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82020,"id":82155,"nodeType":"Return","src":"45529:49:165"}]},"documentation":{"id":82010,"nodeType":"StructuredDocumentation","src":"43819:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43889:17:165","parameters":{"id":82017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82013,"mutability":"mutable","name":"router","nameLocation":"43923:6:165","nodeType":"VariableDeclaration","scope":82157,"src":"43907:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82012,"nodeType":"UserDefinedTypeName","pathNode":{"id":82011,"name":"Storage","nameLocations":["43907:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"43907:7:165"},"referencedDeclaration":74495,"src":"43907:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82016,"mutability":"mutable","name":"_batch","nameLocation":"43961:6:165","nodeType":"VariableDeclaration","scope":82157,"src":"43931:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":82015,"nodeType":"UserDefinedTypeName","pathNode":{"id":82014,"name":"Gear.BatchCommitment","nameLocations":["43931:4:165","43936:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83174,"src":"43931:20:165"},"referencedDeclaration":83174,"src":"43931:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83174_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43906:62:165"},"returnParameters":{"id":82020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82157,"src":"43986:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43986:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43985:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82277,"nodeType":"FunctionDefinition","src":"45591:1168:165","nodes":[],"body":{"id":82276,"nodeType":"Block","src":"45735:1024:165","nodes":[],"statements":[{"assignments":[82170],"declarations":[{"constant":false,"id":82170,"mutability":"mutable","name":"transitionsLen","nameLocation":"45753:14:165","nodeType":"VariableDeclaration","scope":82276,"src":"45745:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82169,"name":"uint256","nodeType":"ElementaryTypeName","src":"45745:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82173,"initialValue":{"expression":{"id":82171,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82164,"src":"45770:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45783:6:165","memberName":"length","nodeType":"MemberAccess","src":"45770:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45745:44:165"},{"assignments":[82175],"declarations":[{"constant":false,"id":82175,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45807:19:165","nodeType":"VariableDeclaration","scope":82276,"src":"45799:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82174,"name":"uint256","nodeType":"ElementaryTypeName","src":"45799:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82179,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82176,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82170,"src":"45829:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45846:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45829:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45799:49:165"},{"assignments":[82181],"declarations":[{"constant":false,"id":82181,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45866:23:165","nodeType":"VariableDeclaration","scope":82276,"src":"45858:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82180,"name":"uint256","nodeType":"ElementaryTypeName","src":"45858:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82186,"initialValue":{"arguments":[{"id":82184,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82175,"src":"45908:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82182,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"45892:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45899:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"45892:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45892:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45858:70:165"},{"assignments":[82188],"declarations":[{"constant":false,"id":82188,"mutability":"mutable","name":"offset","nameLocation":"45946:6:165","nodeType":"VariableDeclaration","scope":82276,"src":"45938:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82187,"name":"uint256","nodeType":"ElementaryTypeName","src":"45938:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82190,"initialValue":{"hexValue":"30","id":82189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45955:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45938:18:165"},{"body":{"id":82267,"nodeType":"Block","src":"46012:640:165","statements":[{"assignments":[82205],"declarations":[{"constant":false,"id":82205,"mutability":"mutable","name":"transition","nameLocation":"46056:10:165","nodeType":"VariableDeclaration","scope":82267,"src":"46026:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82204,"nodeType":"UserDefinedTypeName","pathNode":{"id":82203,"name":"Gear.StateTransition","nameLocations":["46026:4:165","46031:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83329,"src":"46026:20:165"},"referencedDeclaration":83329,"src":"46026:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82209,"initialValue":{"baseExpression":{"id":82206,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82164,"src":"46069:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82208,"indexExpression":{"id":82207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82192,"src":"46082:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46069:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"46026:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82211,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82160,"src":"46107:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46114:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"46107:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46127:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83267,"src":"46107:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82216,"indexExpression":{"expression":{"id":82214,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"46136:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46147:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83295,"src":"46136:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46107:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46159:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46107:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82219,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74620,"src":"46162:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46162:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46099:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46099:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82222,"nodeType":"ExpressionStatement","src":"46099:80:165"},{"assignments":[82224],"declarations":[{"constant":false,"id":82224,"mutability":"mutable","name":"value","nameLocation":"46202:5:165","nodeType":"VariableDeclaration","scope":82267,"src":"46194:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82223,"name":"uint128","nodeType":"ElementaryTypeName","src":"46194:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82226,"initialValue":{"hexValue":"30","id":82225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46210:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46194:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82227,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"46230:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46241:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83307,"src":"46230:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46259:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46230:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46264:38:165","subExpression":{"expression":{"id":82231,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"46265:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46276:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83310,"src":"46265:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"46230:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82241,"nodeType":"IfStatement","src":"46226:144:165","trueBody":{"id":82240,"nodeType":"Block","src":"46304:66:165","statements":[{"expression":{"id":82238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"46322:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82236,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"46330:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46341:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83307,"src":"46330:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46322:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82239,"nodeType":"ExpressionStatement","src":"46322:33:165"}]}},{"assignments":[82243],"declarations":[{"constant":false,"id":82243,"mutability":"mutable","name":"transitionHash","nameLocation":"46392:14:165","nodeType":"VariableDeclaration","scope":82267,"src":"46384:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46384:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82253,"initialValue":{"arguments":[{"id":82251,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"46474:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82245,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"46417:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46428:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83295,"src":"46417:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82244,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74400,"src":"46409:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74400_$","typeString":"type(contract IMirror)"}},"id":82247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74400","typeString":"contract IMirror"}},"id":82248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46437:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74399,"src":"46409:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83329_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82224,"src":"46467:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46409:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83329_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46384:101:165"},{"expression":{"arguments":[{"id":82257,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82181,"src":"46525:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82258,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82188,"src":"46550:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82259,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82243,"src":"46558:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82254,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46499:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46506:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"46499:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46499:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82261,"nodeType":"ExpressionStatement","src":"46499:74:165"},{"id":82266,"nodeType":"UncheckedBlock","src":"46587:55:165","statements":[{"expression":{"id":82264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82262,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82188,"src":"46615:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46625:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46615:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82265,"nodeType":"ExpressionStatement","src":"46615:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82195,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82192,"src":"45987:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82196,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82170,"src":"45991:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45987:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82268,"initializationExpression":{"assignments":[82192],"declarations":[{"constant":false,"id":82192,"mutability":"mutable","name":"i","nameLocation":"45980:1:165","nodeType":"VariableDeclaration","scope":82268,"src":"45972:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82191,"name":"uint256","nodeType":"ElementaryTypeName","src":"45972:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82194,"initialValue":{"hexValue":"30","id":82193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45984:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45972:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"46007:3:165","subExpression":{"id":82198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82192,"src":"46007:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82200,"nodeType":"ExpressionStatement","src":"46007:3:165"},"nodeType":"ForStatement","src":"45967:685:165"},{"expression":{"arguments":[{"id":82271,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82181,"src":"46704:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46729:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82273,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82175,"src":"46732:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82269,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"46669:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46676:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"46669:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":82274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46669:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82168,"id":82275,"nodeType":"Return","src":"46662:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45600:18:165","parameters":{"id":82165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82160,"mutability":"mutable","name":"router","nameLocation":"45635:6:165","nodeType":"VariableDeclaration","scope":82277,"src":"45619:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82159,"nodeType":"UserDefinedTypeName","pathNode":{"id":82158,"name":"Storage","nameLocations":["45619:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"45619:7:165"},"referencedDeclaration":74495,"src":"45619:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82164,"mutability":"mutable","name":"_transitions","nameLocation":"45675:12:165","nodeType":"VariableDeclaration","scope":82277,"src":"45643:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82162,"nodeType":"UserDefinedTypeName","pathNode":{"id":82161,"name":"Gear.StateTransition","nameLocations":["45643:4:165","45648:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83329,"src":"45643:20:165"},"referencedDeclaration":83329,"src":"45643:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83329_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82163,"nodeType":"ArrayTypeName","src":"45643:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83329_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45618:70:165"},"returnParameters":{"id":82168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82167,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82277,"src":"45722:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45722:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45721:9:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82394,"nodeType":"FunctionDefinition","src":"46765:1539:165","nodes":[],"body":{"id":82393,"nodeType":"Block","src":"47086:1218:165","nodes":[],"statements":[{"condition":{"id":82295,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82282,"src":"47100:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82324,"nodeType":"IfStatement","src":"47096:752:165","trueBody":{"id":82323,"nodeType":"Block","src":"47125:723:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82299,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82285,"src":"47530:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47554:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":83058,"src":"47530:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82301,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82285,"src":"47557:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47581:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"47557:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82297,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"47507:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47513:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"47507:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47507:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82304,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74557,"src":"47601:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47601:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82296,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47482:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47482:166:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82307,"nodeType":"ExpressionStatement","src":"47482:166:165"},{"expression":{"id":82312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82308,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"47662:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47674:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"47662:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82311,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82285,"src":"47696:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47662:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82313,"nodeType":"ExpressionStatement","src":"47662:57:165"},{"expression":{"id":82321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82314,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"47733:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47745:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":83069,"src":"47733:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82319,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82287,"src":"47802:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82317,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84723,"src":"47788:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84723_$","typeString":"type(library SSTORE2)"}},"id":82318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47796:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84579,"src":"47788:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47788:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47733:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82322,"nodeType":"ExpressionStatement","src":"47733:104:165"}]}},{"body":{"id":82352,"nodeType":"Block","src":"47911:114:165","statements":[{"assignments":[82338],"declarations":[{"constant":false,"id":82338,"mutability":"mutable","name":"_validator","nameLocation":"47933:10:165","nodeType":"VariableDeclaration","scope":82352,"src":"47925:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82337,"name":"address","nodeType":"ElementaryTypeName","src":"47925:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82343,"initialValue":{"baseExpression":{"expression":{"id":82339,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"47946:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47958:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"47946:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82342,"indexExpression":{"id":82341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82326,"src":"47963:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47946:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47925:40:165"},{"expression":{"id":82350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82344,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"47979:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47991:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"47979:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82348,"indexExpression":{"id":82346,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82338,"src":"47995:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47979:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48009:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47979:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82351,"nodeType":"ExpressionStatement","src":"47979:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82329,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82326,"src":"47877:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82330,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"47881:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47893:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"47881:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47898:6:165","memberName":"length","nodeType":"MemberAccess","src":"47881:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47877:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82353,"initializationExpression":{"assignments":[82326],"declarations":[{"constant":false,"id":82326,"mutability":"mutable","name":"i","nameLocation":"47870:1:165","nodeType":"VariableDeclaration","scope":82353,"src":"47862:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82325,"name":"uint256","nodeType":"ElementaryTypeName","src":"47862:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82328,"initialValue":{"hexValue":"30","id":82327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47874:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47862:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47906:3:165","subExpression":{"id":82334,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82326,"src":"47906:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82336,"nodeType":"ExpressionStatement","src":"47906:3:165"},"nodeType":"ForStatement","src":"47857:168:165"},{"body":{"id":82379,"nodeType":"Block","src":"48086:111:165","statements":[{"assignments":[82366],"declarations":[{"constant":false,"id":82366,"mutability":"mutable","name":"_validator","nameLocation":"48108:10:165","nodeType":"VariableDeclaration","scope":82379,"src":"48100:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82365,"name":"address","nodeType":"ElementaryTypeName","src":"48100:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82370,"initialValue":{"baseExpression":{"id":82367,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"48121:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82369,"indexExpression":{"id":82368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82355,"src":"48136:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"48121:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48100:38:165"},{"expression":{"id":82377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82371,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"48152:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48164:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":83074,"src":"48152:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82375,"indexExpression":{"id":82373,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82366,"src":"48168:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48152:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48182:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"48152:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82378,"nodeType":"ExpressionStatement","src":"48152:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82358,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82355,"src":"48054:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82359,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"48058:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48073:6:165","memberName":"length","nodeType":"MemberAccess","src":"48058:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48054:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82380,"initializationExpression":{"assignments":[82355],"declarations":[{"constant":false,"id":82355,"mutability":"mutable","name":"i","nameLocation":"48047:1:165","nodeType":"VariableDeclaration","scope":82380,"src":"48039:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82354,"name":"uint256","nodeType":"ElementaryTypeName","src":"48039:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82357,"initialValue":{"hexValue":"30","id":82356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"48039:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48081:3:165","subExpression":{"id":82362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82355,"src":"48081:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82364,"nodeType":"ExpressionStatement","src":"48081:3:165"},"nodeType":"ForStatement","src":"48034:163:165"},{"expression":{"id":82385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82381,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"48206:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48218:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"48206:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82384,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82290,"src":"48225:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"48206:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82386,"nodeType":"ExpressionStatement","src":"48206:33:165"},{"expression":{"id":82391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82387,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"48249:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48261:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83081,"src":"48249:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82390,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82292,"src":"48280:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48249:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82392,"nodeType":"ExpressionStatement","src":"48249:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46774:16:165","parameters":{"id":82293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82280,"mutability":"mutable","name":"_validators","nameLocation":"46824:11:165","nodeType":"VariableDeclaration","scope":82394,"src":"46800:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82279,"nodeType":"UserDefinedTypeName","pathNode":{"id":82278,"name":"Gear.Validators","nameLocations":["46800:4:165","46805:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83082,"src":"46800:15:165"},"referencedDeclaration":83082,"src":"46800:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83082_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82282,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"46850:23:165","nodeType":"VariableDeclaration","scope":82394,"src":"46845:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82281,"name":"bool","nodeType":"ElementaryTypeName","src":"46845:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82285,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46915:23:165","nodeType":"VariableDeclaration","scope":82394,"src":"46883:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82284,"nodeType":"UserDefinedTypeName","pathNode":{"id":82283,"name":"Gear.AggregatedPublicKey","nameLocations":["46883:4:165","46888:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83061,"src":"46883:24:165"},"referencedDeclaration":83061,"src":"46883:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$83061_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82287,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46961:34:165","nodeType":"VariableDeclaration","scope":82394,"src":"46948:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82286,"name":"bytes","nodeType":"ElementaryTypeName","src":"46948:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82290,"mutability":"mutable","name":"_newValidators","nameLocation":"47022:14:165","nodeType":"VariableDeclaration","scope":82394,"src":"47005:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82288,"name":"address","nodeType":"ElementaryTypeName","src":"47005:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82289,"nodeType":"ArrayTypeName","src":"47005:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82292,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"47054:17:165","nodeType":"VariableDeclaration","scope":82394,"src":"47046:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82291,"name":"uint256","nodeType":"ElementaryTypeName","src":"47046:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46790:287:165"},"returnParameters":{"id":82294,"nodeType":"ParameterList","parameters":[],"src":"47086:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82407,"nodeType":"FunctionDefinition","src":"48310:192:165","nodes":[],"body":{"id":82406,"nodeType":"Block","src":"48375:127:165","nodes":[],"statements":[{"assignments":[82401],"declarations":[{"constant":false,"id":82401,"mutability":"mutable","name":"slot","nameLocation":"48393:4:165","nodeType":"VariableDeclaration","scope":82406,"src":"48385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82404,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82402,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82419,"src":"48400:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48400:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48385:32:165"},{"AST":{"nativeSrc":"48453:43:165","nodeType":"YulBlock","src":"48453:43:165","statements":[{"nativeSrc":"48467:19:165","nodeType":"YulAssignment","src":"48467:19:165","value":{"name":"slot","nativeSrc":"48482:4:165","nodeType":"YulIdentifier","src":"48482:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"48467:11:165","nodeType":"YulIdentifier","src":"48467:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82398,"isOffset":false,"isSlot":true,"src":"48467:11:165","suffix":"slot","valueSize":1},{"declaration":82401,"isOffset":false,"isSlot":false,"src":"48482:4:165","valueSize":1}],"flags":["memory-safe"],"id":82405,"nodeType":"InlineAssembly","src":"48428:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"48319:7:165","parameters":{"id":82395,"nodeType":"ParameterList","parameters":[],"src":"48326:2:165"},"returnParameters":{"id":82399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82398,"mutability":"mutable","name":"router","nameLocation":"48367:6:165","nodeType":"VariableDeclaration","scope":82407,"src":"48351:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82397,"nodeType":"UserDefinedTypeName","pathNode":{"id":82396,"name":"Storage","nameLocations":["48351:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"48351:7:165"},"referencedDeclaration":74495,"src":"48351:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"48350:24:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82419,"nodeType":"FunctionDefinition","src":"48508:128:165","nodes":[],"body":{"id":82418,"nodeType":"Block","src":"48566:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82414,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79640,"src":"48610:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82412,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48583:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48595:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48583:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48583:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48624:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48583:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82411,"id":82417,"nodeType":"Return","src":"48576:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48517:15:165","parameters":{"id":82408,"nodeType":"ParameterList","parameters":[],"src":"48532:2:165"},"returnParameters":{"id":82411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82419,"src":"48557:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48556:9:165"},"scope":82507,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82447,"nodeType":"FunctionDefinition","src":"48642:240:165","nodes":[],"body":{"id":82446,"nodeType":"Block","src":"48710:172:165","nodes":[],"statements":[{"assignments":[82427],"declarations":[{"constant":false,"id":82427,"mutability":"mutable","name":"slot","nameLocation":"48728:4:165","nodeType":"VariableDeclaration","scope":82446,"src":"48720:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48720:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82432,"initialValue":{"arguments":[{"id":82430,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82421,"src":"48762:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82428,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"48735:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48750:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"48735:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48735:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48720:52:165"},{"expression":{"id":82440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82436,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79640,"src":"48809:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82433,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48782:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48794:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48782:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48782:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48823:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48782:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82439,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82427,"src":"48831:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48782:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82441,"nodeType":"ExpressionStatement","src":"48782:53:165"},{"eventCall":{"arguments":[{"id":82443,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82427,"src":"48870:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82442,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74546,"src":"48851:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48851:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82445,"nodeType":"EmitStatement","src":"48846:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82424,"kind":"modifierInvocation","modifierName":{"id":82423,"name":"onlyOwner","nameLocations":["48700:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"48700:9:165"},"nodeType":"ModifierInvocation","src":"48700:9:165"}],"name":"_setStorageSlot","nameLocation":"48651:15:165","parameters":{"id":82422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82421,"mutability":"mutable","name":"namespace","nameLocation":"48681:9:165","nodeType":"VariableDeclaration","scope":82447,"src":"48667:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82420,"name":"string","nodeType":"ElementaryTypeName","src":"48667:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48666:25:165"},"returnParameters":{"id":82425,"nodeType":"ParameterList","parameters":[],"src":"48710:0:165"},"scope":82507,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82506,"nodeType":"FunctionDefinition","src":"49030:396:165","nodes":[],"body":{"id":82505,"nodeType":"Block","src":"49071:355:165","nodes":[],"statements":[{"assignments":[82455],"declarations":[{"constant":false,"id":82455,"mutability":"mutable","name":"router","nameLocation":"49097:6:165","nodeType":"VariableDeclaration","scope":82505,"src":"49081:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82454,"nodeType":"UserDefinedTypeName","pathNode":{"id":82453,"name":"Storage","nameLocations":["49081:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74495,"src":"49081:7:165"},"referencedDeclaration":74495,"src":"49081:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82458,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82456,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82407,"src":"49106:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74495_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49106:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"49081:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82455,"src":"49133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49140:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74470,"src":"49133:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83234_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49153:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"49133:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49169:1:165","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":82464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49161:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49161:7:165","typeDescriptions":{}}},"id":82466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49161:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49133:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82468,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"49173:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49173:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49125:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82471,"nodeType":"ExpressionStatement","src":"49125:82:165"},{"assignments":[82473],"declarations":[{"constant":false,"id":82473,"mutability":"mutable","name":"value","nameLocation":"49226:5:165","nodeType":"VariableDeclaration","scope":82505,"src":"49218:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82472,"name":"uint128","nodeType":"ElementaryTypeName","src":"49218:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82479,"initialValue":{"arguments":[{"expression":{"id":82476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49242:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49246:5:165","memberName":"value","nodeType":"MemberAccess","src":"49242:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49234:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82474,"name":"uint128","nodeType":"ElementaryTypeName","src":"49234:7:165","typeDescriptions":{}}},"id":82478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49234:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"49218:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82481,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82473,"src":"49270:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49278:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49270:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82484,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74646,"src":"49281:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49281:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49262:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49262:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82487,"nodeType":"ExpressionStatement","src":"49262:39:165"},{"assignments":[82489],"declarations":[{"constant":false,"id":82489,"mutability":"mutable","name":"actorId","nameLocation":"49320:7:165","nodeType":"VariableDeclaration","scope":82505,"src":"49312:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82488,"name":"address","nodeType":"ElementaryTypeName","src":"49312:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82492,"initialValue":{"expression":{"id":82490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49330:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49334:6:165","memberName":"sender","nodeType":"MemberAccess","src":"49330:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"49312:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82494,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82455,"src":"49358:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74495_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49365:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74494,"src":"49358:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83283_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49378:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83267,"src":"49358:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82498,"indexExpression":{"id":82497,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82489,"src":"49387:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49358:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49399:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49358:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82501,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74620,"src":"49402:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49402:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82493,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49350:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49350:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82504,"nodeType":"ExpressionStatement","src":"49350:69:165"}]},"documentation":{"id":82448,"nodeType":"StructuredDocumentation","src":"48888:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82451,"kind":"modifierInvocation","modifierName":{"id":82450,"name":"whenNotPaused","nameLocations":["49057:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"49057:13:165"},"nodeType":"ModifierInvocation","src":"49057:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82449,"nodeType":"ParameterList","parameters":[],"src":"49037:2:165"},"returnParameters":{"id":82452,"nodeType":"ParameterList","parameters":[],"src":"49071:0:165"},"scope":82507,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79624,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74995,"src":"1576:7:165"},"id":79625,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79626,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79627,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79628,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79629,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79630,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79631,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79632,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79633,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79634,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79635,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79636,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79637,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82507,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,74995],"name":"Router","nameLocation":"1562:6:165","scope":82508,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74549,74552,74555,74557,74560,74563,74566,74569,74572,74575,74582,74591,74596,74603,74606,74608,74610,74612,74614,74616,74618,74620,74622,74624,74626,74628,74630,74632,74634,74636,74638,74640,74642,74644,74646,83037,83040,83043,83046,83049,83052,83055],"usedEvents":[42169,42347,43729,43734,44781,44803,74500,74505,74510,74517,74522,74527,74534,74541,74546]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ No newline at end of file diff --git a/ethexe/ethereum/abi/WrappedVara.json b/ethexe/ethereum/abi/WrappedVara.json index bbc49007d54..22aedc92e2a 100644 --- a/ethexe/ethereum/abi/WrappedVara.json +++ b/ethexe/ethereum/abi/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":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"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":"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"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":"FailedCall","inputs":[]},{"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"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1323:2191:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;7983:34:30;7979:146;;-1:-1:-1;1323:2191:166;;;;;;;;1052:13:60;1323:2191:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;8085:29:30;;1323:2191:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1323:2191:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1323:2191:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2357:1:29;1323:2191:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1323:2191:166;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;4771:20:31;1323:2191:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;1323:2191:166;;;;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;2420:78:33;1323:2191:166;2420:78:33;;1323:2191:166;1279:95:33;1323:2191:166;;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;;;;;;;;1279:95:33;;1323:2191:166;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;2420:78:33;;;1323:2191:166;2420:78:33;;:::i;:::-;1323:2191:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;1323:2191:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1323:2191:166;;;3993:249:80;1323:2191:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;1323:2191:166;2661:35:33;1323:2191:166;;;;;;2661:35:33;2282:97;2335:33;;;;1323:2191:166;2335:33:33;1323:2191:166;;;;2335:33:33;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;4301:16:30;1323:2191:166;;4724:16:30;;:34;;;;1323:2191:166;4803:1:30;4788:16;:50;;;;1323:2191:166;4853:13:30;:30;;;;1323:2191:166;4849:91:30;;;1323:2191:166;4803:1:30;-1:-1:-1;;;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;1323:2191:166;;;:::i;:::-;1533:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1323:2191:166;;:::i;:::-;6891:76:30;;;:::i;:::-;1323:2191:166;;;;;;;:::i;:::-;4803:1:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;1653:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;1323:2191:166;5064:101:30;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5140:14:30;1323:2191:166;;;4803:1:30;1323:2191:166;;5140:14:30;1323:2191:166;8703:91:31;8751:32;;;1323:2191:166;8751:32:31;1323:2191:166;;;;;8751:32:31;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;4977:67:30;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;4849:91;6496:23;;;1323:2191:166;4906:23:30;1323:2191:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;4545:5:31;1323:2191:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5647:18:40;:43;;;1323:2191:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;1323:2191:166;;;;5870:4:40;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;5647:43:40;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;5669:21:40;5647:43;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;1479:5:32;1323:2191:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;1323:2191:166;;3975:40:29;1323:2191:166;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;6429:44:30;;;;;1323:2191:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;1323:2191:166;;;;;;;:::i;:::-;1533:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;6959:1:30;;-1:-1:-1;;;;;1323:2191:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1323:2191:166;;:::i;:::-;6891:76:30;;:::i;:::-;1323:2191:166;;;;;;:::i;:::-;6591:4:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;6654:20:30;1323:2191:166;;;2486:1;1323:2191;;6654:20:30;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;6429:44:30;2486:1:166;1323:2191;;-1:-1:-1;;;;;1323:2191:166;6448:25:30;;6429:44;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;4824:6:60;-1:-1:-1;;;;;1323:2191:166;4815:4:60;4807:23;4803:145;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;4803:145:60;4578:29;;;1323:2191:166;4908:29:60;1323:2191:166;;4908:29:60;1323:2191:166;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;1323:2191:166;4392:4:60;4384:23;;;:120;;;;1323:2191:166;4367:251:60;;;2303:62:29;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;5865:52:60;;1323:2191:166;;5865:52:60;;;1323:2191:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;1323:2191:166;6227:60:60;1323:2191:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;1323:2191:166;;2458:15:53;:11;;1323:2191:166;4065:25:66;;4107:55;4065:25;;;;;;1323:2191:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;1323:2191:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1323:2191:166;6159:70:53;6199:19;;;1323:2191:166;6199:19:53;1323:2191:166;;6199:19:53;1744:119;1805:47;;;1323:2191:166;1805:47:53;1323:2191:166;;;;1805:47:53;5955:120:60;6026:34;;;1323:2191:166;6026:34:60;1323:2191:166;;;;6026:34:60;5865:52;;;;1323:2191:166;5865:52:60;;1323:2191:166;5865:52:60;;;;;;1323:2191:166;5865:52:60;;;:::i;:::-;;;1323:2191:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;1005:5:32;1323:2191:166;;966:10:34;1005:5:32;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;8832:5;1323:2191:166;;;8832:5:31;;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;3980:23:40;;:::i;:::-;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;3246:2;1323:2191;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;6102:5:31;1323:2191:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;10021:4:31;1323:2191:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;:::o;1533:14::-;1323:2191;;;;;;;:::i;:::-;1533:14;1323:2191;;-1:-1:-1;;;1533:14:166;;;;:::o;1323:2191::-;-1:-1:-1;;;;;1323:2191:166;;;;;4771:13:31;1323:2191:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1323:2191:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1323:2191:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;1323:2191:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;1323:2191:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;1323:2191:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;1323:2191:166;;;;;;11921:60:31;1323:2191:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;1323:2191:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;1323:2191:166;;6687:16:31;;6683:86;;1323:2191:166;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;8262:25:31;1323:2191:166;;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;6608:1:31;1323:2191:166;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;1323:2191:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;1323:2191:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1323:2191:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;1323:2191:166;9233:21:31;;9229:89;;1323:2191:166;9252:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;9252:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;;9252:1:31;1323:2191:166;;8262:25:31;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;1323:2191:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;1323:2191:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;;11139:90;;11319:31;11238:20;;1323:2191:166;11238:20:31;;:::i;:::-;1323:2191:166;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;8262:25:31;;1323:2191:166;;7822:16:31;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;7818:429:31;1323:2191:166;;;;;8262:25:31;7124:1170::o;7818:429::-;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;7818:429:31;;1323:2191:166;;;;;1653:9;;;;;1323:2191;1653:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1323:2191:166;;4107:92:40;;;;1323:2191:166;1959:95:40;1323:2191:166;;;1959:95:40;;1323:2191:166;1959:95:40;;;1323:2191:166;4170:13:40;1959:95;;;1323:2191:166;4193:4:40;1959:95;;;1323:2191:166;1959:95:40;4107:92;;;;;;:::i;:::-;1323:2191:166;4097:103:40;;4016:191;:::o;7082:141:30:-;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1323:2191:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;1323:2191:166;;;-1:-1:-1;1323:2191:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1323:2191:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1323:2191:166;7462:38:77;;1323:2191:166;;7523:23:77;;;7375:20;7523:23;1323:2191:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1323:2191:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1323:2191:166;;;7375:20:77;7763:32;1323:2191:166;;;;7375:20:77;1323:2191:166;;;;;7375:20:77;1323:2191:166;6928:687:40;1323:2191:166;;:::i;:::-;;;;7100:22:40;;;;1323:2191:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1323:2191:166;;:::i;:::-;;;;8017:25:40;;;;1323:2191:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1323:2191:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1323:2191:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1323:2191:166;;;;4933:24:66;1323:2191:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","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","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"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\":[],\"name\":\"FailedCall\",\"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\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token. VARA is also used for paying fees, staking and governance on Vara Network, while WVARA does all of the same things but on Ethereum. On Ethereum network, WVARA is used as an executable balance for programs (Mirrors). Please note that this version of WrappedVara is only used in local development environments, in production we use this: - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"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.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"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.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"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.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"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\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"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\":\"Returns the value of tokens owned by `account`.\"},\"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"initialize(address)\":{\"details\":\"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.\",\"params\":{\"initialOwner\":\"The address that will be able to mint tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Mints `amount` tokens to `to`.\",\"params\":{\"amount\":\"The amount of tokens to mint.\",\"to\":\"The address to mint tokens to.\"}},\"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.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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\":\"Returns the value of tokens in existence.\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"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\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"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\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"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/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\":\"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb\",\"dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"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":[],"type":"error","name":"FailedCall"},{"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":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"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":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"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":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"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":"Returns the value of tokens owned by `account`."},"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"initialize(address)":{"details":"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.","params":{"initialOwner":"The address that will be able to mint tokens."}},"mint(address,uint256)":{"details":"Mints `amount` tokens to `to`.","params":{"amount":"The amount of tokens to mint.","to":"The address to mint tokens to."}},"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."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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":"Returns the value of tokens in existence."},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"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":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"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":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"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/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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":"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd","urls":["bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb","dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":82497,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82496]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82355,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82357,"nodeType":"ImportDirective","src":"100:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82356,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82359,"nodeType":"ImportDirective","src":"202:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82358,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82361,"nodeType":"ImportDirective","src":"299:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82360,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82363,"nodeType":"ImportDirective","src":"402:135:166","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":82497,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82362,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82365,"nodeType":"ImportDirective","src":"538:131:166","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":82497,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82364,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82367,"nodeType":"ImportDirective","src":"670:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82366,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82496,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82383,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82381,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":82386,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82384,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1592:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":82389,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1653:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":82397,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82396,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82393,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82395,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82390,"nodeType":"StructuredDocumentation","src":"1669:63:166","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82391,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82392,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82432,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82431,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82406,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82407,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82386,"src":"2157:12:166","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":82405,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2132:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82409,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82410,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2180:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82412,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82414,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82400,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82413,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2212:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82416,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82418,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82417,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2250:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82420,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82422,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82400,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82423,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82389,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":82425,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82479],"referencedDeclaration":82479,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2334:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2311:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82421,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"2291:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82430,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82398,"nodeType":"StructuredDocumentation","src":"1796:260:166","text":" @dev Initializes the WrappedVara contract with the token name and symbol.\n @param initialOwner The address that will be able to mint tokens.\n @dev The initialOwner receives the 1 million WVARA tokens minted during initialization."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":82403,"kind":"modifierInvocation","modifierName":{"id":82402,"name":"initializer","nameLocations":["2110:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"2110:11:166"},"nodeType":"ModifierInvocation","src":"2110:11:166"}],"name":"initialize","nameLocation":"2070:10:166","parameters":{"id":82401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82400,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82432,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82399,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82404,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82459,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82458,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82442,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82443,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82386,"src":"2524:12:166","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":82441,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2499:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82445,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82446,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82448,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82450,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"2594:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2594:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82449,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2579:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82453,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82455,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82454,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2612:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2612:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82457,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82433,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82436,"kind":"modifierInvocation","modifierName":{"id":82435,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2486:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":82439,"kind":"modifierInvocation","modifierName":{"id":82437,"name":"reinitializer","nameLocations":["2472:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"2472:13:166"},"nodeType":"ModifierInvocation","src":"2472:16:166"}],"name":"reinitialize","nameLocation":"2440:12:166","parameters":{"id":82434,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82440,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82469,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82468,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82460,"nodeType":"StructuredDocumentation","src":"2655:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82466,"kind":"modifierInvocation","modifierName":{"id":82465,"name":"onlyOwner","nameLocations":["2886:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2886:9:166"},"nodeType":"ModifierInvocation","src":"2886:9:166"}],"name":"_authorizeUpgrade","nameLocation":"2823:17:166","overrides":{"id":82464,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82462,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82469,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82461,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82467,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82479,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82478,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":82475,"id":82477,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82470,"nodeType":"StructuredDocumentation","src":"2904:263:166","text":" @dev Returns the number of decimals used to get its user representation.\n Also see documentation about decimals:\n - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3181:8:166","overrides":{"id":82472,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82471,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82479,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82473,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82496,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82495,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82494,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82490,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82482,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82491,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82484,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82489,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"3488:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82493,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82480,"nodeType":"StructuredDocumentation","src":"3261:153:166","text":" @dev Mints `amount` tokens to `to`.\n @param to The address to mint tokens to.\n @param amount The amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":82487,"kind":"modifierInvocation","modifierName":{"id":82486,"name":"onlyOwner","nameLocations":["3468:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"3468:9:166"},"nodeType":"ModifierInvocation","src":"3468:9:166"}],"name":"mint","nameLocation":"3428:4:166","parameters":{"id":82485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82482,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82495,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82481,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82484,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82495,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82488,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82369,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82370,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82371,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82372,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82373,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82374,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82375,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82376,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82377,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82378,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82379,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82380,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82368,"nodeType":"StructuredDocumentation","src":"760:562:166","text":" @dev Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token.\n VARA is also used for paying fees, staking and governance on Vara Network,\n while WVARA does all of the same things but on Ethereum.\n On Ethereum network, WVARA is used as an executable balance for programs (Mirrors).\n Please note that this version of WrappedVara is only used in local development environments,\n in production we use this:\n - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol"},"fullyImplemented":true,"linearizedBaseContracts":[82496,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82497,"usedErrors":[42158,42163,42339,42342,43304,43311,43601,44845,44850,44855,44864,44869,44874,45427,45440,46100,46105,47372,48774,50701,50706,50711],"usedEvents":[42169,42347,44781,44803,46770,46779]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":166} \ 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":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"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":"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"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":"FailedCall","inputs":[]},{"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"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1323:2191:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;7983:34:30;7979:146;;-1:-1:-1;1323:2191:166;;;;;;;;1052:13:60;1323:2191:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;8085:29:30;;1323:2191:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1323:2191:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1323:2191:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2357:1:29;1323:2191:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1323:2191:166;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;4771:20:31;1323:2191:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;1323:2191:166;;;;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;2420:78:33;1323:2191:166;2420:78:33;;1323:2191:166;1279:95:33;1323:2191:166;;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;;;;;;;;1279:95:33;;1323:2191:166;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;2420:78:33;;;1323:2191:166;2420:78:33;;:::i;:::-;1323:2191:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;1323:2191:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1323:2191:166;;;3993:249:80;1323:2191:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;1323:2191:166;2661:35:33;1323:2191:166;;;;;;2661:35:33;2282:97;2335:33;;;;1323:2191:166;2335:33:33;1323:2191:166;;;;2335:33:33;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;4301:16:30;1323:2191:166;;4724:16:30;;:34;;;;1323:2191:166;4803:1:30;4788:16;:50;;;;1323:2191:166;4853:13:30;:30;;;;1323:2191:166;4849:91:30;;;1323:2191:166;4803:1:30;-1:-1:-1;;;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;1323:2191:166;;;:::i;:::-;1533:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1323:2191:166;;:::i;:::-;6891:76:30;;;:::i;:::-;1323:2191:166;;;;;;;:::i;:::-;4803:1:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;1653:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;1323:2191:166;5064:101:30;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5140:14:30;1323:2191:166;;;4803:1:30;1323:2191:166;;5140:14:30;1323:2191:166;8703:91:31;8751:32;;;1323:2191:166;8751:32:31;1323:2191:166;;;;;8751:32:31;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;4977:67:30;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;4849:91;6496:23;;;1323:2191:166;4906:23:30;1323:2191:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;4545:5:31;1323:2191:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5647:18:40;:43;;;1323:2191:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;1323:2191:166;;;;5870:4:40;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;5647:43:40;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;5669:21:40;5647:43;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;1479:5:32;1323:2191:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;1323:2191:166;;3975:40:29;1323:2191:166;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;6429:44:30;;;;;1323:2191:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;1323:2191:166;;;;;;;:::i;:::-;1533:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;6959:1:30;;-1:-1:-1;;;;;1323:2191:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1323:2191:166;;:::i;:::-;6891:76:30;;:::i;:::-;1323:2191:166;;;;;;:::i;:::-;6591:4:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;6654:20:30;1323:2191:166;;;2486:1;1323:2191;;6654:20:30;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;6429:44:30;2486:1:166;1323:2191;;-1:-1:-1;;;;;1323:2191:166;6448:25:30;;6429:44;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;4824:6:60;-1:-1:-1;;;;;1323:2191:166;4815:4:60;4807:23;4803:145;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;4803:145:60;4578:29;;;1323:2191:166;4908:29:60;1323:2191:166;;4908:29:60;1323:2191:166;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;1323:2191:166;4392:4:60;4384:23;;;:120;;;;1323:2191:166;4367:251:60;;;2303:62:29;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;5865:52:60;;1323:2191:166;;5865:52:60;;;1323:2191:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;1323:2191:166;6227:60:60;1323:2191:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;1323:2191:166;;2458:15:53;:11;;1323:2191:166;4065:25:66;;4107:55;4065:25;;;;;;1323:2191:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;1323:2191:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1323:2191:166;6159:70:53;6199:19;;;1323:2191:166;6199:19:53;1323:2191:166;;6199:19:53;1744:119;1805:47;;;1323:2191:166;1805:47:53;1323:2191:166;;;;1805:47:53;5955:120:60;6026:34;;;1323:2191:166;6026:34:60;1323:2191:166;;;;6026:34:60;5865:52;;;;1323:2191:166;5865:52:60;;1323:2191:166;5865:52:60;;;;;;1323:2191:166;5865:52:60;;;:::i;:::-;;;1323:2191:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;1005:5:32;1323:2191:166;;966:10:34;1005:5:32;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;8832:5;1323:2191:166;;;8832:5:31;;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;3980:23:40;;:::i;:::-;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;3246:2;1323:2191;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;6102:5:31;1323:2191:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;10021:4:31;1323:2191:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;:::o;1533:14::-;1323:2191;;;;;;;:::i;:::-;1533:14;1323:2191;;-1:-1:-1;;;1533:14:166;;;;:::o;1323:2191::-;-1:-1:-1;;;;;1323:2191:166;;;;;4771:13:31;1323:2191:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1323:2191:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1323:2191:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;1323:2191:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;1323:2191:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;1323:2191:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;1323:2191:166;;;;;;11921:60:31;1323:2191:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;1323:2191:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;1323:2191:166;;6687:16:31;;6683:86;;1323:2191:166;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;8262:25:31;1323:2191:166;;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;6608:1:31;1323:2191:166;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;1323:2191:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;1323:2191:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1323:2191:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;1323:2191:166;9233:21:31;;9229:89;;1323:2191:166;9252:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;9252:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;;9252:1:31;1323:2191:166;;8262:25:31;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;1323:2191:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;1323:2191:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;;11139:90;;11319:31;11238:20;;1323:2191:166;11238:20:31;;:::i;:::-;1323:2191:166;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;8262:25:31;;1323:2191:166;;7822:16:31;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;7818:429:31;1323:2191:166;;;;;8262:25:31;7124:1170::o;7818:429::-;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;7818:429:31;;1323:2191:166;;;;;1653:9;;;;;1323:2191;1653:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1323:2191:166;;4107:92:40;;;;1323:2191:166;1959:95:40;1323:2191:166;;;1959:95:40;;1323:2191:166;1959:95:40;;;1323:2191:166;4170:13:40;1959:95;;;1323:2191:166;4193:4:40;1959:95;;;1323:2191:166;1959:95:40;4107:92;;;;;;:::i;:::-;1323:2191:166;4097:103:40;;4016:191;:::o;7082:141:30:-;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1323:2191:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;1323:2191:166;;;-1:-1:-1;1323:2191:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1323:2191:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1323:2191:166;7462:38:77;;1323:2191:166;;7523:23:77;;;7375:20;7523:23;1323:2191:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1323:2191:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1323:2191:166;;;7375:20:77;7763:32;1323:2191:166;;;;7375:20:77;1323:2191:166;;;;;7375:20:77;1323:2191:166;6928:687:40;1323:2191:166;;:::i;:::-;;;;7100:22:40;;;;1323:2191:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1323:2191:166;;:::i;:::-;;;;8017:25:40;;;;1323:2191:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1323:2191:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1323:2191:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1323:2191:166;;;;4933:24:66;1323:2191:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","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","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"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\":[],\"name\":\"FailedCall\",\"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\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token. VARA is also used for paying fees, staking and governance on Vara Network, while WVARA does all of the same things but on Ethereum. On Ethereum network, WVARA is used as an executable balance for programs (Mirrors). Please note that this version of WrappedVara is only used in local development environments, in production we use this: - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"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.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"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.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"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.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"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\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"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\":\"Returns the value of tokens owned by `account`.\"},\"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"initialize(address)\":{\"details\":\"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.\",\"params\":{\"initialOwner\":\"The address that will be able to mint tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Mints `amount` tokens to `to`.\",\"params\":{\"amount\":\"The amount of tokens to mint.\",\"to\":\"The address to mint tokens to.\"}},\"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.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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\":\"Returns the value of tokens in existence.\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"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\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"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\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"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/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"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\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"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\":\"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb\",\"dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"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":[],"type":"error","name":"FailedCall"},{"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":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"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":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"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":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"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":"Returns the value of tokens owned by `account`."},"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"initialize(address)":{"details":"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.","params":{"initialOwner":"The address that will be able to mint tokens."}},"mint(address,uint256)":{"details":"Mints `amount` tokens to `to`.","params":{"amount":"The amount of tokens to mint.","to":"The address to mint tokens to."}},"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."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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":"Returns the value of tokens in existence."},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"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":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"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":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"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/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"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":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"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":"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd","urls":["bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb","dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":82651,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82650]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82509,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82511,"nodeType":"ImportDirective","src":"100:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82651,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82510,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82513,"nodeType":"ImportDirective","src":"202:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":82651,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82512,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82515,"nodeType":"ImportDirective","src":"299:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82651,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82514,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82517,"nodeType":"ImportDirective","src":"402:135:166","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":82651,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82516,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82519,"nodeType":"ImportDirective","src":"538:131:166","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":82651,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82518,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82521,"nodeType":"ImportDirective","src":"670:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82651,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82520,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82650,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82537,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82650,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82535,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":82540,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82650,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82538,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1592:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":82543,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82650,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82541,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1653:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":82551,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82550,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82547,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82549,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82544,"nodeType":"StructuredDocumentation","src":"1669:63:166","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82545,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82546,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82650,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82586,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82585,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82560,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82537,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82561,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82540,"src":"2157:12:166","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":82559,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2132:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82563,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82564,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2180:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82566,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82568,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82554,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82567,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2212:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82570,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82572,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82537,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82571,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2250:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82574,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82576,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82554,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82577,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82543,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":82579,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82633],"referencedDeclaration":82633,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2334:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2311:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82575,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"2291:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82584,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82552,"nodeType":"StructuredDocumentation","src":"1796:260:166","text":" @dev Initializes the WrappedVara contract with the token name and symbol.\n @param initialOwner The address that will be able to mint tokens.\n @dev The initialOwner receives the 1 million WVARA tokens minted during initialization."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":82557,"kind":"modifierInvocation","modifierName":{"id":82556,"name":"initializer","nameLocations":["2110:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"2110:11:166"},"nodeType":"ModifierInvocation","src":"2110:11:166"}],"name":"initialize","nameLocation":"2070:10:166","parameters":{"id":82555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82554,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82586,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82553,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82558,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82650,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82613,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82612,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82596,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82537,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82597,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82540,"src":"2524:12:166","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":82595,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2499:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82599,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82600,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82602,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82604,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"2594:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2594:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82603,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2579:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82607,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82609,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82537,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82608,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2612:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2612:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82611,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82587,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82590,"kind":"modifierInvocation","modifierName":{"id":82589,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2486:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":82593,"kind":"modifierInvocation","modifierName":{"id":82591,"name":"reinitializer","nameLocations":["2472:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"2472:13:166"},"nodeType":"ModifierInvocation","src":"2472:16:166"}],"name":"reinitialize","nameLocation":"2440:12:166","parameters":{"id":82588,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82594,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82650,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82623,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82622,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82614,"nodeType":"StructuredDocumentation","src":"2655:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82620,"kind":"modifierInvocation","modifierName":{"id":82619,"name":"onlyOwner","nameLocations":["2886:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2886:9:166"},"nodeType":"ModifierInvocation","src":"2886:9:166"}],"name":"_authorizeUpgrade","nameLocation":"2823:17:166","overrides":{"id":82618,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82616,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82623,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82615,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82621,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82650,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82633,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82632,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":82629,"id":82631,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82624,"nodeType":"StructuredDocumentation","src":"2904:263:166","text":" @dev Returns the number of decimals used to get its user representation.\n Also see documentation about decimals:\n - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3181:8:166","overrides":{"id":82626,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82625,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82633,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82627,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82650,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82649,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82648,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82644,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82636,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82645,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82638,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82643,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"3488:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82647,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82634,"nodeType":"StructuredDocumentation","src":"3261:153:166","text":" @dev Mints `amount` tokens to `to`.\n @param to The address to mint tokens to.\n @param amount The amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":82641,"kind":"modifierInvocation","modifierName":{"id":82640,"name":"onlyOwner","nameLocations":["3468:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"3468:9:166"},"nodeType":"ModifierInvocation","src":"3468:9:166"}],"name":"mint","nameLocation":"3428:4:166","parameters":{"id":82639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82636,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82649,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82635,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82638,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82649,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82637,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82642,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82650,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82523,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82524,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82525,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82526,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82527,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82528,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82529,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82530,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82531,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82532,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82533,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82534,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82522,"nodeType":"StructuredDocumentation","src":"760:562:166","text":" @dev Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token.\n VARA is also used for paying fees, staking and governance on Vara Network,\n while WVARA does all of the same things but on Ethereum.\n On Ethereum network, WVARA is used as an executable balance for programs (Mirrors).\n Please note that this version of WrappedVara is only used in local development environments,\n in production we use this:\n - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol"},"fullyImplemented":true,"linearizedBaseContracts":[82650,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82651,"usedErrors":[42158,42163,42339,42342,43304,43311,43601,44845,44850,44855,44864,44869,44874,45427,45440,46100,46105,47372,48774,50701,50706,50711],"usedEvents":[42169,42347,44781,44803,46770,46779]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":166} \ No newline at end of file diff --git a/ethexe/ethereum/src/abi/events/mirror.rs b/ethexe/ethereum/src/abi/events/mirror.rs index 3c597c744df..032448824d3 100644 --- a/ethexe/ethereum/src/abi/events/mirror.rs +++ b/ethexe/ethereum/src/abi/events/mirror.rs @@ -43,6 +43,14 @@ impl From for ValueClaimingRequestedEvent { } } +impl From for GearEvent { + fn from(value: IMirror::GearEvent) -> Self { + Self { + payload: value.payload.into(), + } + } +} + impl From for OwnedBalanceTopUpRequestedEvent { fn from(value: IMirror::OwnedBalanceTopUpRequested) -> Self { Self { value: value.value } diff --git a/ethexe/ethereum/src/abi/gear.rs b/ethexe/ethereum/src/abi/gear.rs index 2fb76a90bc4..d2456500ee0 100644 --- a/ethexe/ethereum/src/abi/gear.rs +++ b/ethexe/ethereum/src/abi/gear.rs @@ -169,6 +169,8 @@ impl From for Gear::StateTransition { valueToReceiveNegativeSign: value.value_to_receive_negative_sign, valueClaims: value.value_claims.into_iter().map(Into::into).collect(), messages: value.messages.into_iter().map(Into::into).collect(), + events: value.events.into_iter().map(Into::into).collect(), + ethEvents: value.eth_events.into_iter().map(Into::into).collect(), } } } diff --git a/ethexe/ethereum/src/mirror/events.rs b/ethexe/ethereum/src/mirror/events.rs index 52ea1bbb4d6..c100061793e 100644 --- a/ethexe/ethereum/src/mirror/events.rs +++ b/ethexe/ethereum/src/mirror/events.rs @@ -13,7 +13,7 @@ use anyhow::Result; use ethexe_common::events::{ MirrorEvent, MirrorRequestEvent, mirror::{ - ExecutableBalanceTopUpRequestedEvent, MessageCallFailedEvent, MessageEvent, + ExecutableBalanceTopUpRequestedEvent, GearEvent, MessageCallFailedEvent, MessageEvent, MessageQueueingRequestedEvent, OwnedBalanceTopUpRequestedEvent, ReplyCallFailedEvent, ReplyEvent, ReplyQueueingRequestedEvent, ReplyTransferFailedEvent, StateChangedEvent, TransferLockedValueToInheritorFailedEvent, ValueClaimFailedEvent, ValueClaimedEvent, @@ -44,6 +44,7 @@ pub mod signatures { TRANSFER_LOCKED_VALUE_TO_INHERITOR_FAILED: TransferLockedValueToInheritorFailed, REPLY_TRANSFER_FAILED: ReplyTransferFailed, VALUE_CLAIM_FAILED: ValueClaimFailed, + GEAR: GearEvent, } pub const REQUESTS: &[B256] = &[ @@ -101,6 +102,7 @@ pub fn try_extract_event(log: &Log) -> Result> { VALUE_CLAIM_FAILED => { MirrorEvent::ValueClaimFailed(decode_log::(log)?.into()) } + GEAR => MirrorEvent::Gear(decode_log::(log)?.into()), _ => unreachable!("filtered above"), }; @@ -148,6 +150,7 @@ impl<'a> AllEventsBuilder<'a> { signatures::TRANSFER_LOCKED_VALUE_TO_INHERITOR_FAILED, signatures::REPLY_TRANSFER_FAILED, signatures::VALUE_CLAIM_FAILED, + signatures::GEAR, ])); Ok(self .query @@ -497,6 +500,29 @@ impl<'a> ValueClaimedEventBuilder<'a> { } } +pub struct GearEventBuilder<'a> { + event: Event<&'a RootProvider, IMirror::GearEvent>, +} + +impl<'a> GearEventBuilder<'a> { + pub(crate) fn new(query: &'a MirrorQuery) -> Self { + Self { + event: query.0.GearEvent_filter(), + } + } + + pub async fn subscribe( + self, + ) -> Result> + Unpin + use<>> { + Ok(self + .event + .subscribe() + .await? + .into_stream() + .map(|result| result.map(|(event, log)| (event.into(), log)))) + } +} + pub struct TransferLockedValueToInheritorFailedEventBuilder<'a> { event: Event<&'a RootProvider, IMirror::TransferLockedValueToInheritorFailed>, } diff --git a/ethexe/ethereum/src/mirror/mod.rs b/ethexe/ethereum/src/mirror/mod.rs index 1f62704a3fa..2a611219c7d 100644 --- a/ethexe/ethereum/src/mirror/mod.rs +++ b/ethexe/ethereum/src/mirror/mod.rs @@ -22,7 +22,7 @@ use ethexe_common::{ }; pub use events::signatures; use events::{ - ExecutableBalanceTopUpRequestedEventBuilder, MessageCallFailedEventBuilder, + ExecutableBalanceTopUpRequestedEventBuilder, GearEventBuilder, MessageCallFailedEventBuilder, MessageEventBuilder, MessageQueueingRequestedEventBuilder, OwnedBalanceTopUpRequestedEventBuilder, ReplyCallFailedEventBuilder, ReplyEventBuilder, ReplyQueueingRequestedEventBuilder, ReplyTransferFailedEventBuilder, StateChangedEventBuilder, @@ -458,6 +458,10 @@ impl<'a> MirrorEvents<'a> { ValueClaimedEventBuilder::new(self.query) } + pub fn gear_event(&self) -> GearEventBuilder<'a> { + GearEventBuilder::new(self.query) + } + pub fn transfer_locked_value_to_inheritor_failed( &self, ) -> TransferLockedValueToInheritorFailedEventBuilder<'a> { diff --git a/ethexe/node-loader/src/batch.rs b/ethexe/node-loader/src/batch.rs index 63fa29a573d..04909f6c7dc 100644 --- a/ethexe/node-loader/src/batch.rs +++ b/ethexe/node-loader/src/batch.rs @@ -235,6 +235,7 @@ fn apply_mirror_event_update(context_update: &mut ContextUpdate, event: &Event) stats.increment_claims_failed(); stats.increment_failures(); } + MirrorEvent::Gear(_) => {} } } diff --git a/ethexe/runtime/common/src/journal.rs b/ethexe/runtime/common/src/journal.rs index f8448b9d907..fa8e69c0cb5 100644 --- a/ethexe/runtime/common/src/journal.rs +++ b/ethexe/runtime/common/src/journal.rs @@ -7,7 +7,9 @@ use crate::{ ActiveProgram, Dispatch, Expiring, MailboxMessage, ModifiableStorage, PayloadLookup, Program, ProgramState, Storage, }, - transitions::is_event_destination, + transitions::{ + is_eth_sails_event_destination, is_event_destination, is_gear_sails_event_destination, + }, }; use alloc::{ collections::{BTreeMap, BTreeSet}, @@ -181,15 +183,12 @@ impl NativeJournalHandler<'_, S> { transitions.modify_transition(dispatch.source(), |transition| { let stored = dispatch.into_parts().1; - - transition - .messages - .push(Message::from_stored(stored, false)); - transition.claims.push(ethexe_common::gear::ValueClaim { - message_id, - destination, - value, - }); + let payload = stored.payload_bytes().to_vec(); + if is_gear_sails_event_destination(destination) { + transition.events.push(payload); + } else if is_eth_sails_event_destination(destination) { + transition.eth_events.push(payload); + } }); let reply = Dispatch::reply( diff --git a/ethexe/runtime/common/src/proptest.rs b/ethexe/runtime/common/src/proptest.rs index 15d16b054c8..ae3d7c02f9b 100644 --- a/ethexe/runtime/common/src/proptest.rs +++ b/ethexe/runtime/common/src/proptest.rs @@ -186,6 +186,14 @@ fn message_strategy() -> BoxedStrategy { .boxed() } +fn event_strategy() -> BoxedStrategy> { + collection::vec(any::(), 0..=64).boxed() +} + +fn eth_event_strategy() -> BoxedStrategy> { + collection::vec(any::(), 0..=64).boxed() +} + #[cfg(test)] fn dispatch_kind_strategy() -> BoxedStrategy { prop_oneof![ @@ -414,8 +422,10 @@ fn transition_with_current_state_strategy( current_state.hash, None, 0, - Vec::new(), - Vec::new(), + vec![], + vec![], + vec![], + vec![], )), ] .boxed() @@ -1018,10 +1028,28 @@ impl Arbitrary for NonFinalTransition { any::(), collection::vec(value_claim_strategy(), 0..=4), collection::vec(message_strategy(), 0..=4), + collection::vec(event_strategy(), 0..=4), + collection::vec(eth_event_strategy(), 0..=4), ) .prop_map( - |(initial_state, inheritor, value_to_receive, claims, messages)| { - Self::new(initial_state, inheritor, value_to_receive, claims, messages) + |( + initial_state, + inheritor, + value_to_receive, + claims, + messages, + events, + eth_events, + )| { + Self::new( + initial_state, + inheritor, + value_to_receive, + claims, + messages, + events, + eth_events, + ) }, ) .boxed() diff --git a/ethexe/runtime/common/src/schedule.rs b/ethexe/runtime/common/src/schedule.rs index 3f1ceec2b67..7323e8f6a6b 100644 --- a/ethexe/runtime/common/src/schedule.rs +++ b/ethexe/runtime/common/src/schedule.rs @@ -7,7 +7,9 @@ use crate::{ Dispatch, DispatchStash, Expiring, MailboxMessage, ModifiableStorage, PayloadLookup, ProgramState, QueryableStorage, Storage, UserMailbox, Waitlist, }, - transitions::is_event_destination, + transitions::{ + is_eth_sails_event_destination, is_event_destination, is_gear_sails_event_destination, + }, }; use alloc::collections::{BTreeMap, BTreeSet}; use anyhow::Context; @@ -95,18 +97,15 @@ impl TaskHandler for Handler<'_, S> { }); if event_destinations && is_event_destination(user_id) { - let value = dispatch.value; let message_type = dispatch.message_type; transitions.modify_transition(program_id, |transition| { - transition - .messages - .push(dispatch.clone().into_message(storage, user_id)); - transition.claims.push(ValueClaim { - message_id: stashed_message_id, - destination: user_id, - value, - }); + let message = dispatch.clone().into_message(storage, user_id); + if is_gear_sails_event_destination(user_id) { + transition.events.push(message.payload); + } else if is_eth_sails_event_destination(user_id) { + transition.eth_events.push(message.payload); + } }); let reply = Dispatch::reply( diff --git a/ethexe/runtime/common/src/transitions.rs b/ethexe/runtime/common/src/transitions.rs index 42a61191f85..64bfc97a2af 100644 --- a/ethexe/runtime/common/src/transitions.rs +++ b/ethexe/runtime/common/src/transitions.rs @@ -15,13 +15,21 @@ use gprimitives::{ActorId, CodeId, H256}; pub(crate) const GEAR_SAILS_EVENT: ActorId = ActorId::new([0; 32]); -/// Must match `gstd`/`gcore` `ETH_EVENT_ADDR` +/// Must match `sails-rs` `ETH_EVENT_ADDR` /// (`0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF` on Ethereum). pub(crate) const ETH_SAILS_EVENT: ActorId = ActorId::new([ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ]); +pub(crate) fn is_gear_sails_event_destination(destination: ActorId) -> bool { + destination == GEAR_SAILS_EVENT +} + +pub(crate) fn is_eth_sails_event_destination(destination: ActorId) -> bool { + destination == ETH_SAILS_EVENT +} + pub(crate) fn is_event_destination(destination: ActorId) -> bool { matches!(destination, GEAR_SAILS_EVENT | ETH_SAILS_EVENT) } @@ -242,6 +250,8 @@ impl InBlockTransitions { value_to_receive_negative_sign: modification.value_to_receive < 0, value_claims: modification.claims, messages: modification.messages, + events: modification.events, + eth_events: modification.eth_events, }); } } @@ -293,6 +303,8 @@ pub struct NonFinalTransition { pub value_to_receive: i128, pub claims: Vec, pub messages: Vec, + pub events: Vec>, + pub eth_events: Vec>, } impl NonFinalTransition { @@ -302,7 +314,7 @@ impl NonFinalTransition { // check if state hash changed at final (always op) && current_state == self.initial_state // check if with unchanged state needs commitment (op) - && (self.inheritor.is_none() && self.value_to_receive == 0 && self.claims.is_empty() && self.messages.is_empty()) + && (self.inheritor.is_none() && self.value_to_receive == 0 && self.claims.is_empty() && self.messages.is_empty() && self.events.is_empty() && self.eth_events.is_empty()) } #[cfg(any(test, feature = "mock"))] @@ -317,6 +329,8 @@ impl NonFinalTransition { value_to_receive: i128, claims: Vec, messages: Vec, + events: Vec>, + eth_events: Vec>, ) -> Self { Self { initial_state, @@ -324,6 +338,8 @@ impl NonFinalTransition { value_to_receive, claims, messages, + events, + eth_events, } } } diff --git a/ethexe/service/Cargo.toml b/ethexe/service/Cargo.toml index 00eb0b3c584..9beee206b8c 100644 --- a/ethexe/service/Cargo.toml +++ b/ethexe/service/Cargo.toml @@ -84,3 +84,4 @@ demo-delayed-sender-ethexe = { workspace = true, features = [ "debug", "ethexe", ] } +demo-sails-events = { workspace = true, features = ["debug", "ethexe"] } diff --git a/ethexe/service/src/tests/mod.rs b/ethexe/service/src/tests/mod.rs index 83234c94b11..bc76ef6853a 100644 --- a/ethexe/service/src/tests/mod.rs +++ b/ethexe/service/src/tests/mod.rs @@ -13,6 +13,7 @@ use crate::tests::utils::{ use alloy::{ primitives::U256, providers::{Provider as _, WalletProvider, ext::AnvilApi}, + rpc::types::Filter, }; use ethexe_common::{ db::{CodesStorageRO, GlobalsStorageRO, InjectedStorageRO, MbStorageRO, OnChainStorageRO}, @@ -3710,3 +3711,154 @@ async fn batch_commitment_period_commits_only_on_multiples() { stop_nodes([node]).await; } + +#[tokio::test] +#[ntest::timeout(60_000)] +async fn test_sails_events() { + init_logger(); + + let mut env = TestEnv::default().await; + + let mut node = env + .new_node(NodeConfig::default().validator(env.validators[0])) + .await; + node.start_service().await; + + let res = env + .upload_code(demo_sails_events::WASM_BINARY) + .await + .unwrap() + .wait_for() + .await + .unwrap(); + assert!(res.valid); + + let code_id = res.code_id; + + let code = node + .db + .original_code(code_id) + .expect("After approval, the code is guaranteed to be in the database"); + assert_eq!(code, demo_sails_events::WASM_BINARY); + + let _ = node + .db + .instrumented_code(RUNTIME_ID, code_id) + .expect("After approval, instrumented code is guaranteed to be in the database"); + let res = env + .create_program(code_id, 500_000_000_000_000) + .await + .unwrap() + .wait_for() + .await + .unwrap(); + assert_eq!(res.code_id, code_id); + + let sails_events_id = res.program_id; + + let wvara = env.ethereum.router().wvara(); + assert_eq!(wvara.query().decimals().await.unwrap(), 12); + + let sails_events = env + .ethereum + .mirror(sails_events_id.to_address_lossy().into()); + + let on_eth_balance = sails_events.query().balance().await.unwrap(); + assert_eq!(on_eth_balance, 0); + + let state_hash = sails_events.query().state_hash().await.unwrap(); + let local_balance = node.db.program_state(state_hash).unwrap().balance; + assert_eq!(local_balance, 0); + + // 1_000 ETH + const VALUE_SENT: u128 = 1_000 * ETHER; + + sails_events.owned_balance_top_up(VALUE_SENT).await.unwrap(); + + let res = env + .send_message(sails_events_id, b"") + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + assert_eq!(res.code, ReplyCode::Success(SuccessReplyReason::Auto)); + assert_eq!(res.payload, b""); + assert_eq!(res.value, 0); + + let receiver = env.new_observer_events(); + + let res = env + .send_message_with_params(sails_events_id, b"\x00gear_event_payload", 42) + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + assert_eq!(res.code, ReplyCode::Success(SuccessReplyReason::Auto)); + assert_eq!(res.payload, b""); + assert_eq!(res.value, 0); + + let gear_event = receiver + .filter_map_block_synced() + .find_map(|event| match event { + BlockEvent::Mirror { + event: MirrorEvent::Gear(event), + .. + } => Some(event), + _ => None, + }) + .await; + assert_eq!(gear_event.payload, b"gear_event_payload"); + + let router_address = env.ethereum.router().address(); + let router_balance = env + .ethereum + .provider() + .get_balance(router_address.into()) + .await + .map(ethexe_ethereum::abi::utils::uint256_to_u128_lossy) + .unwrap(); + assert_eq!(router_balance, 42); + + let mut payload: Vec = vec![]; + let topic1 = [0xee; 32]; + + payload.extend_from_slice(&[0xff]); // event type (sails) + payload.extend_from_slice(&[0x01]); // topics length + payload.extend_from_slice(&topic1); // topic1 + + let res = env + .send_message_with_params(sails_events_id, &payload, 42) + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + assert_eq!(res.code, ReplyCode::Success(SuccessReplyReason::Auto)); + assert_eq!(res.payload, b""); + assert_eq!(res.value, 0); + + let logs = env + .ethereum + .provider() + .get_logs(&Filter::new().event_signature(topic1)) + .await + .unwrap(); + assert_eq!(logs.len(), 1); + + let router_address = env.ethereum.router().address(); + let router_balance = env + .ethereum + .provider() + .get_balance(router_address.into()) + .await + .map(ethexe_ethereum::abi::utils::uint256_to_u128_lossy) + .unwrap(); + assert_eq!(router_balance, 84); + + stop_nodes([node]).await; +} diff --git a/sdk/examples/sails-events/Cargo.toml b/sdk/examples/sails-events/Cargo.toml new file mode 100644 index 00000000000..d4f2f622260 --- /dev/null +++ b/sdk/examples/sails-events/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "demo-sails-events" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true + +[dependencies] +gear-workspace-hack.workspace = true +gstd.workspace = true + +[build-dependencies] +gear-wasm-builder.workspace = true + +[features] +debug = ["gstd/debug"] +default = ["std"] +std = [] +ethexe = ["gstd/ethexe"] diff --git a/sdk/examples/sails-events/build.rs b/sdk/examples/sails-events/build.rs new file mode 100644 index 00000000000..ba52910860e --- /dev/null +++ b/sdk/examples/sails-events/build.rs @@ -0,0 +1,6 @@ +// Copyright (C) Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +fn main() { + gear_wasm_builder::build(); +} diff --git a/sdk/examples/sails-events/src/lib.rs b/sdk/examples/sails-events/src/lib.rs new file mode 100644 index 00000000000..38380c8d3c4 --- /dev/null +++ b/sdk/examples/sails-events/src/lib.rs @@ -0,0 +1,15 @@ +// Copyright (C) Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +#![no_std] + +#[cfg(feature = "std")] +mod code { + include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +} + +#[cfg(feature = "std")] +pub use code::WASM_BINARY_OPT as WASM_BINARY; + +#[cfg(not(feature = "std"))] +mod wasm; diff --git a/sdk/examples/sails-events/src/wasm.rs b/sdk/examples/sails-events/src/wasm.rs new file mode 100644 index 00000000000..a03f0d00930 --- /dev/null +++ b/sdk/examples/sails-events/src/wasm.rs @@ -0,0 +1,32 @@ +// Copyright (C) Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +use gstd::{ActorId, msg, prelude::*}; + +const GEAR_SAILS_EVENT: ActorId = ActorId::new([0; 32]); + +const ETH_SAILS_EVENT: ActorId = ActorId::new([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +]); + +#[unsafe(no_mangle)] +extern "C" fn init() {} + +#[unsafe(no_mangle)] +extern "C" fn handle() { + let payload = msg::load_bytes().expect("Failed to load payload"); + let event_type = payload[0]; + + match event_type { + 0x00 => { + msg::send_bytes(GEAR_SAILS_EVENT, &payload[1..], msg::value()) + .expect("Failed to send event"); + } + 0xff => { + msg::send_bytes(ETH_SAILS_EVENT, &payload[1..], msg::value()) + .expect("Failed to send event"); + } + _ => panic!("Invalid event type: {event_type}"), + } +} From 42b9c471007b33ca52ffd107a66e428997089e17 Mon Sep 17 00:00:00 2001 From: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Date: Mon, 29 Jun 2026 15:47:35 +0300 Subject: [PATCH 2/5] fix ci --- .github/workflows/check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 21ee0226d14..21f067c3002 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -119,7 +119,7 @@ jobs: - name: "Check: Mirror.sol events are updated" run: | - set +H && sed -i '/\/\/ forgefmt: disable-start/,/\/\/ forgefmt: disable-end/{//!d}' src/Mirror.sol && GENERATED_CONDITION=$(grep -Po " event\s+\K[^(]+" src/IMirror.sol | xargs -I{} echo " topic1 != {}.selector &&" | sed '$ s/ &&$//') && awk -v cond="$GENERATED_CONDITION" '/\/\/ forgefmt: disable-start/{print; print " if (!("; print cond; print " )) {"; print " return false;"; print " }"; next}1' src/Mirror.sol > src/Mirror.tmp && mv src/Mirror.tmp src/Mirror.sol + set +H && sed -i '/\/\/ forgefmt: disable-start/,/\/\/ forgefmt: disable-end/{//!d}' src/Mirror.sol && GENERATED_CONDITION=$(grep -Po " event\s+\K[^(]+" src/IMirror.sol | xargs -I{} echo " topic1 != {}.selector &&" | sed '$ s/ &&$//') && awk -v cond="$GENERATED_CONDITION" '/\/\/ forgefmt: disable-start/{print; print " if (!("; print cond; print " )) {"; print " return;"; print " }"; next}1' src/Mirror.sol > src/Mirror.tmp && mv src/Mirror.tmp src/Mirror.sol git diff --exit-code src/Mirror.sol || (echo "Mirror.sol has been modified. Please commit the changes." && exit 1) working-directory: ethexe/contracts From 404ff668a224501a7becb49f17c5457548df72ac Mon Sep 17 00:00:00 2001 From: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Date: Mon, 29 Jun 2026 17:44:01 +0300 Subject: [PATCH 3/5] fix tests --- ethexe/common/src/db.rs | 2 +- ethexe/runtime/common/src/journal.rs | 48 +++++++++++++++++---------- ethexe/runtime/common/src/schedule.rs | 14 ++++---- 3 files changed, 39 insertions(+), 25 deletions(-) diff --git a/ethexe/common/src/db.rs b/ethexe/common/src/db.rs index d87f9be1f17..c6073468915 100644 --- a/ethexe/common/src/db.rs +++ b/ethexe/common/src/db.rs @@ -267,7 +267,7 @@ mod tests { #[test] fn ensure_types_unchanged() { const EXPECTED_TYPE_INFO_HASH: &str = - "cbf21dc97ec57cc6f653a7808672dc2c086fdfae28d1435e93f0dfe812de21c3"; + "ecc18fab0923d8a33a915eca5cbf09779ecf59818e58500ff88e7800727a5a7d"; let types = [ meta_type::(), diff --git a/ethexe/runtime/common/src/journal.rs b/ethexe/runtime/common/src/journal.rs index fa8e69c0cb5..15f64f965ea 100644 --- a/ethexe/runtime/common/src/journal.rs +++ b/ethexe/runtime/common/src/journal.rs @@ -960,6 +960,25 @@ mod tests { ) } + fn dispatch_to_with_payload( + destination: ActorId, + value: u128, + payload: Vec, + ) -> CoreDispatch { + CoreDispatch::new( + DispatchKind::Handle, + CoreMessage::new( + MessageId::from(10), + ActorId::from(7), + destination, + payload.try_into().unwrap(), + None, + value, + None, + ), + ) + } + fn handle_user_dispatch( destination: ActorId, event_destinations_autoreply: bool, @@ -1013,14 +1032,13 @@ mod tests { let state = storage.program_state(state_hash).unwrap(); if event_destinations_autoreply { - assert_eq!(transition.messages.len(), 1); - assert_eq!(transition.messages[0].id, MessageId::from(10)); - assert_eq!(transition.messages[0].destination, destination); - assert_eq!(transition.messages[0].value, 11); - assert_eq!(transition.claims.len(), 1); - assert_eq!(transition.claims[0].message_id, MessageId::from(10)); - assert_eq!(transition.claims[0].destination, destination); - assert_eq!(transition.claims[0].value, 11); + assert!(transition.messages.is_empty()); + assert!(transition.claims.is_empty()); + if is_gear_sails_event_destination(destination) { + assert_eq!(transition.events.len(), 1); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(transition.eth_events.len(), 1); + } } else { assert_eq!(transition.messages.len(), 1); assert!(transition.claims.is_empty()); @@ -1115,7 +1133,7 @@ mod tests { handler.send_dispatch( MessageId::from(9), - dispatch_to(destination, 11), + dispatch_to_with_payload(destination, 11, vec![1, 2, 3]), DELAY, None, ); @@ -1143,14 +1161,10 @@ mod tests { } let transition = transitions.modifications_mut().get(&source).unwrap(); - assert_eq!(transition.messages.len(), 1); - assert_eq!(transition.messages[0].id, message_id); - assert_eq!(transition.messages[0].destination, destination); - assert_eq!(transition.messages[0].value, 11); - assert_eq!(transition.claims.len(), 1); - assert_eq!(transition.claims[0].message_id, message_id); - assert_eq!(transition.claims[0].destination, destination); - assert_eq!(transition.claims[0].value, 11); + assert_eq!(transition.messages.len(), 0); + assert_eq!(transition.claims.len(), 0); + assert_eq!(transition.eth_events.len(), 1); + assert_eq!(transition.eth_events[0], vec![1, 2, 3]); let state_hash = transitions.state_of(&source).unwrap().hash; let state = storage.program_state(state_hash).unwrap(); diff --git a/ethexe/runtime/common/src/schedule.rs b/ethexe/runtime/common/src/schedule.rs index 7323e8f6a6b..980e6886082 100644 --- a/ethexe/runtime/common/src/schedule.rs +++ b/ethexe/runtime/common/src/schedule.rs @@ -604,13 +604,13 @@ mod tests { } let transition = transitions.modifications_mut().remove(&program_id).unwrap(); - assert_eq!(transition.messages.len(), 1); - assert_eq!(transition.messages[0].destination, destination); - assert_eq!(transition.messages[0].value, 11); - assert_eq!(transition.claims.len(), 1); - assert_eq!(transition.claims[0].message_id, message_id); - assert_eq!(transition.claims[0].destination, destination); - assert_eq!(transition.claims[0].value, 11); + assert!(transition.messages.is_empty()); + assert!(transition.claims.is_empty()); + if is_gear_sails_event_destination(destination) { + assert_eq!(transition.events.len(), 1); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(transition.eth_events.len(), 1); + } let state_hash = transitions.state_of(&program_id).unwrap().hash; let state = storage.program_state(state_hash).unwrap(); From 8154698767fc7a151551bffb9533c8bf88404128 Mon Sep 17 00:00:00 2001 From: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Date: Thu, 2 Jul 2026 10:52:47 +0300 Subject: [PATCH 4/5] prohibit sending messages with value to event addresses --- ethexe/runtime/common/Cargo.toml | 2 +- ethexe/runtime/common/src/ext.rs | 24 +++++++++---- ethexe/runtime/common/src/journal.rs | 12 +++---- ethexe/runtime/common/src/schedule.rs | 7 ++-- ethexe/runtime/common/src/transitions.rs | 24 +++++-------- ethexe/runtime/src/wasm/interface/mod.rs | 1 + ethexe/service/src/tests/mod.rs | 43 ++---------------------- protocol/gprimitives/src/lib.rs | 20 +++++++++++ sdk/examples/sails-events/src/wasm.rs | 11 ++---- sdk/gsys/src/lib.rs | 1 + 10 files changed, 60 insertions(+), 85 deletions(-) diff --git a/ethexe/runtime/common/Cargo.toml b/ethexe/runtime/common/Cargo.toml index 353ebd6eed7..3c1cbcda5f5 100644 --- a/ethexe/runtime/common/Cargo.toml +++ b/ethexe/runtime/common/Cargo.toml @@ -18,7 +18,7 @@ ethexe-common.workspace = true gear-lazy-pages-common.workspace = true gear-core-processor.workspace = true gear-core.workspace = true -gprimitives.workspace = true +gprimitives = { workspace = true, features = ["ethexe"] } gsys.workspace = true gear-core-errors.workspace = true gear-core-backend.workspace = true diff --git a/ethexe/runtime/common/src/ext.rs b/ethexe/runtime/common/src/ext.rs index 53b1328a54b..ef8f48e393c 100644 --- a/ethexe/runtime/common/src/ext.rs +++ b/ethexe/runtime/common/src/ext.rs @@ -12,7 +12,7 @@ use gear_core::{ env_vars::EnvVars, gas::{ChargeError, CounterType, CountersOwner, GasAmount, GasLeft}, memory::{Memory, MemoryError, MemoryInterval}, - message::{HandlePacket, InitPacket, MessageContext, ReplyPacket}, + message::{HandlePacket, InitPacket, MessageContext, Packet, ReplyPacket}, pages::WasmPage, program::MemoryInfix, }; @@ -94,7 +94,6 @@ impl Externalities for Ext { fn block_timestamp(&self) -> Result; fn send_init(&mut self) -> Result; fn send_push(&mut self, handle: u32, buffer: &[u8]) -> Result<(), Self::FallibleError>; - fn send_commit(&mut self, handle: u32, msg: HandlePacket, delay: u32) -> Result; fn send_push_input(&mut self, handle: u32, offset: u32, len: u32) -> Result<(), Self::FallibleError>; fn reply_push(&mut self, buffer: &[u8]) -> Result<(), Self::FallibleError>; fn reply_commit(&mut self, msg: ReplyPacket) -> Result; @@ -117,11 +116,24 @@ impl Externalities for Ext { } } + fn send_commit( + &mut self, + handle: u32, + msg: HandlePacket, + delay: u32, + ) -> Result { + match msg.destination() { + ActorId::GEAR_SAILS_EVENT | ActorId::ETH_SAILS_EVENT if msg.value() > 0 => { + Err(FallibleExtError::Core(ExtError::Unsupported)) + } + _ => self.core.send_commit(handle, msg, delay), + } + } + fn wake(&mut self, waker_id: MessageId, delay: u32) -> Result<(), Self::FallibleError> { - if delay != 0 { - Err(FallibleExtError::Core(ExtError::Unsupported)) - } else { - self.core.wake(waker_id, delay) + match delay { + 0 => self.core.wake(waker_id, 0), + _ => Err(FallibleExtError::Core(ExtError::Unsupported)), } } diff --git a/ethexe/runtime/common/src/journal.rs b/ethexe/runtime/common/src/journal.rs index eecad405ba7..7bb0384c891 100644 --- a/ethexe/runtime/common/src/journal.rs +++ b/ethexe/runtime/common/src/journal.rs @@ -904,11 +904,7 @@ mod tests { use super::*; - use crate::{ - InBlockTransitions, TransitionsConfig, - state::MemStorage, - transitions::{ETH_SAILS_EVENT, GEAR_SAILS_EVENT}, - }; + use crate::{InBlockTransitions, TransitionsConfig, state::MemStorage}; fn init_setup( exec_balance: u128, @@ -1049,7 +1045,7 @@ mod tests { #[test] fn event_destination_messages_skip_mailbox_and_expire_immediately() { - for destination in [GEAR_SAILS_EVENT, ETH_SAILS_EVENT] { + for destination in [ActorId::GEAR_SAILS_EVENT, ActorId::ETH_SAILS_EVENT] { let (storage, state) = handle_user_dispatch(destination, true); assert!(state.mailbox_hash.is_empty()); @@ -1076,7 +1072,7 @@ mod tests { #[test] fn event_destination_messages_keep_legacy_mailbox_when_disabled() { - let (_storage, state) = handle_user_dispatch(GEAR_SAILS_EVENT, false); + let (_storage, state) = handle_user_dispatch(ActorId::GEAR_SAILS_EVENT, false); assert!(!state.mailbox_hash.is_empty()); assert!(state.canonical_queue.is_empty()); @@ -1088,7 +1084,7 @@ mod tests { use gear_core::tasks::TaskHandler; const DELAY: u32 = 5; - let destination = ETH_SAILS_EVENT; + let destination = ActorId::ETH_SAILS_EVENT; let storage = MemStorage::default(); let source = ActorId::from(7); let message_id = MessageId::from(10); diff --git a/ethexe/runtime/common/src/schedule.rs b/ethexe/runtime/common/src/schedule.rs index 980e6886082..bd99acedd44 100644 --- a/ethexe/runtime/common/src/schedule.rs +++ b/ethexe/runtime/common/src/schedule.rs @@ -545,17 +545,14 @@ mod tests { #[test] fn send_user_message_to_event_destination_skips_mailbox() { - use crate::{ - InBlockTransitions, TransitionController, TransitionsConfig, - transitions::{ETH_SAILS_EVENT, GEAR_SAILS_EVENT}, - }; + use crate::{InBlockTransitions, TransitionController, TransitionsConfig}; use ethexe_common::{ProgramStates, StateHashWithQueueSize}; use gear_core::{ ids::prelude::MessageIdExt, message::{DispatchKind, ReplyCode}, }; - for destination in [GEAR_SAILS_EVENT, ETH_SAILS_EVENT] { + for destination in [ActorId::GEAR_SAILS_EVENT, ActorId::ETH_SAILS_EVENT] { let storage = MemStorage::default(); let program_id = ActorId::from(7); let message_id = MessageId::from(10); diff --git a/ethexe/runtime/common/src/transitions.rs b/ethexe/runtime/common/src/transitions.rs index 64bfc97a2af..2eb54db6676 100644 --- a/ethexe/runtime/common/src/transitions.rs +++ b/ethexe/runtime/common/src/transitions.rs @@ -13,25 +13,19 @@ use ethexe_common::{ }; use gprimitives::{ActorId, CodeId, H256}; -pub(crate) const GEAR_SAILS_EVENT: ActorId = ActorId::new([0; 32]); - -/// Must match `sails-rs` `ETH_EVENT_ADDR` -/// (`0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF` on Ethereum). -pub(crate) const ETH_SAILS_EVENT: ActorId = ActorId::new([ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -]); - pub(crate) fn is_gear_sails_event_destination(destination: ActorId) -> bool { - destination == GEAR_SAILS_EVENT + destination == ActorId::GEAR_SAILS_EVENT } pub(crate) fn is_eth_sails_event_destination(destination: ActorId) -> bool { - destination == ETH_SAILS_EVENT + destination == ActorId::ETH_SAILS_EVENT } pub(crate) fn is_event_destination(destination: ActorId) -> bool { - matches!(destination, GEAR_SAILS_EVENT | ETH_SAILS_EVENT) + matches!( + destination, + ActorId::GEAR_SAILS_EVENT | ActorId::ETH_SAILS_EVENT + ) } #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -446,8 +440,8 @@ mod tests { use gprimitives::H160; let eth_event_addr = H160::repeat_byte(0xff); - assert_eq!(ETH_SAILS_EVENT, ActorId::from(eth_event_addr)); - assert_ne!(ETH_SAILS_EVENT, ActorId::new([u8::MAX; 32])); - assert!(is_event_destination(ETH_SAILS_EVENT)); + assert_eq!(ActorId::ETH_SAILS_EVENT, ActorId::from(eth_event_addr)); + assert_ne!(ActorId::ETH_SAILS_EVENT, ActorId::new([u8::MAX; 32])); + assert!(is_event_destination(ActorId::ETH_SAILS_EVENT)); } } diff --git a/ethexe/runtime/src/wasm/interface/mod.rs b/ethexe/runtime/src/wasm/interface/mod.rs index 68e55a62eeb..9222e47a085 100644 --- a/ethexe/runtime/src/wasm/interface/mod.rs +++ b/ethexe/runtime/src/wasm/interface/mod.rs @@ -39,6 +39,7 @@ macro_rules! declare { use super::*; #[allow(improper_ctypes)] + #[cfg_attr(target_arch = "wasm32", link(wasm_import_module = "env"))] unsafe extern "C" { $( $(#[$attrs])* diff --git a/ethexe/service/src/tests/mod.rs b/ethexe/service/src/tests/mod.rs index b7637f6b998..42400a07038 100644 --- a/ethexe/service/src/tests/mod.rs +++ b/ethexe/service/src/tests/mod.rs @@ -3791,25 +3791,6 @@ async fn test_sails_events() { let sails_events_id = res.program_id; - let wvara = env.ethereum.router().wvara(); - assert_eq!(wvara.query().decimals().await.unwrap(), 12); - - let sails_events = env - .ethereum - .mirror(sails_events_id.to_address_lossy().into()); - - let on_eth_balance = sails_events.query().balance().await.unwrap(); - assert_eq!(on_eth_balance, 0); - - let state_hash = sails_events.query().state_hash().await.unwrap(); - let local_balance = node.db.program_state(state_hash).unwrap().balance; - assert_eq!(local_balance, 0); - - // 1_000 ETH - const VALUE_SENT: u128 = 1_000 * ETHER; - - sails_events.owned_balance_top_up(VALUE_SENT).await.unwrap(); - let res = env .send_message(sails_events_id, b"") .await @@ -3825,7 +3806,7 @@ async fn test_sails_events() { let receiver = env.new_observer_events(); let res = env - .send_message_with_params(sails_events_id, b"\x00gear_event_payload", 42) + .send_message(sails_events_id, b"\x00gear_event_payload") .await .unwrap() .wait_for() @@ -3848,16 +3829,6 @@ async fn test_sails_events() { .await; assert_eq!(gear_event.payload, b"gear_event_payload"); - let router_address = env.ethereum.router().address(); - let router_balance = env - .ethereum - .provider() - .get_balance(router_address.into()) - .await - .map(ethexe_ethereum::abi::utils::uint256_to_u128_lossy) - .unwrap(); - assert_eq!(router_balance, 42); - let mut payload: Vec = vec![]; let topic1 = [0xee; 32]; @@ -3866,7 +3837,7 @@ async fn test_sails_events() { payload.extend_from_slice(&topic1); // topic1 let res = env - .send_message_with_params(sails_events_id, &payload, 42) + .send_message(sails_events_id, &payload) .await .unwrap() .wait_for() @@ -3885,15 +3856,5 @@ async fn test_sails_events() { .unwrap(); assert_eq!(logs.len(), 1); - let router_address = env.ethereum.router().address(); - let router_balance = env - .ethereum - .provider() - .get_balance(router_address.into()) - .await - .map(ethexe_ethereum::abi::utils::uint256_to_u128_lossy) - .unwrap(); - assert_eq!(router_balance, 84); - stop_nodes([node]).await; } diff --git a/protocol/gprimitives/src/lib.rs b/protocol/gprimitives/src/lib.rs index af6b8819976..46c7289aa54 100644 --- a/protocol/gprimitives/src/lib.rs +++ b/protocol/gprimitives/src/lib.rs @@ -105,6 +105,26 @@ pub struct ActorId([u8; 32]); macros::impl_primitive!(new zero into_bytes from_h256 into_h256 try_from_slice debug, ActorId); impl ActorId { + /// Constant value of Gear Sails event actor ID. + pub const GEAR_SAILS_EVENT: Self = Self::zero(); + + /// Constant value of Ethereum Sails event actor ID. + pub const ETH_SAILS_EVENT: Self = Self::new([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, + ]); + + /// Returns the constant value of Gear Sails event actor ID. + pub const fn gear_sails_event() -> Self { + Self::GEAR_SAILS_EVENT + } + + /// Returns the constant value of Ethereum Sails event actor ID. + pub const fn eth_sails_event() -> Self { + Self::ETH_SAILS_EVENT + } + /// Returns the ss58-check address with default ss58 version. pub fn to_ss58check(&self) -> Result { RawSs58Address::from(self.0) diff --git a/sdk/examples/sails-events/src/wasm.rs b/sdk/examples/sails-events/src/wasm.rs index a03f0d00930..5218ed9f38b 100644 --- a/sdk/examples/sails-events/src/wasm.rs +++ b/sdk/examples/sails-events/src/wasm.rs @@ -3,13 +3,6 @@ use gstd::{ActorId, msg, prelude::*}; -const GEAR_SAILS_EVENT: ActorId = ActorId::new([0; 32]); - -const ETH_SAILS_EVENT: ActorId = ActorId::new([ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -]); - #[unsafe(no_mangle)] extern "C" fn init() {} @@ -20,11 +13,11 @@ extern "C" fn handle() { match event_type { 0x00 => { - msg::send_bytes(GEAR_SAILS_EVENT, &payload[1..], msg::value()) + msg::send_bytes(ActorId::gear_sails_event(), &payload[1..], msg::value()) .expect("Failed to send event"); } 0xff => { - msg::send_bytes(ETH_SAILS_EVENT, &payload[1..], msg::value()) + msg::send_bytes(ActorId::eth_sails_event(), &payload[1..], msg::value()) .expect("Failed to send event"); } _ => panic!("Invalid event type: {event_type}"), diff --git a/sdk/gsys/src/lib.rs b/sdk/gsys/src/lib.rs index 0060687985d..fd4e882ebb7 100644 --- a/sdk/gsys/src/lib.rs +++ b/sdk/gsys/src/lib.rs @@ -398,6 +398,7 @@ macro_rules! syscalls { )* ) => { #[allow(improper_ctypes)] + #[cfg_attr(target_arch = "wasm32", link(wasm_import_module = "env"))] unsafe extern "C" { $( $(#[$attrs])* From 28851596c7bbb7d2ef6dbd33425b9e533bb7d6ec Mon Sep 17 00:00:00 2001 From: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Date: Wed, 8 Jul 2026 18:26:18 +0300 Subject: [PATCH 5/5] fix tests --- ethexe/runtime/common/src/journal.rs | 66 ++++++++++----------------- ethexe/runtime/common/src/schedule.rs | 49 +++++++------------- 2 files changed, 39 insertions(+), 76 deletions(-) diff --git a/ethexe/runtime/common/src/journal.rs b/ethexe/runtime/common/src/journal.rs index 48f8849b141..592f0e32133 100644 --- a/ethexe/runtime/common/src/journal.rs +++ b/ethexe/runtime/common/src/journal.rs @@ -208,7 +208,8 @@ impl NativeJournalHandler<'_, S> { transitions.modify_transition(dispatch.source(), |transition| { let stored = dispatch.into_parts().1; - let committable = message_type.is_canonical(); + let committable = message_type.is_canonical() + || is_eth_sails_event_destination(destination); if committable { let payload = stored.payload_bytes().to_vec(); if is_gear_sails_event_destination(destination) { @@ -1567,19 +1568,13 @@ mod tests { fn injected_event_dest_value0_not_committed_no_claim() { for destination in [ActorId::GEAR_SAILS_EVENT, ActorId::ETH_SAILS_EVENT] { let t = send_handle_to_user_transition(destination, 0, MessageType::Injected, true); - assert_eq!( - t.messages.len(), - 1, - "message must be present for {destination:?}" - ); - assert!( - !t.committed_message_ids.contains(&t.messages[0].id), - "injected value-0 event message must NOT be in committed_message_ids ({destination:?})" - ); - assert!( - t.claims.is_empty(), - "no autoclaim must be produced for off-chain injected event message ({destination:?})" - ); + assert!(t.messages.is_empty()); + assert!(t.claims.is_empty()); + if is_gear_sails_event_destination(destination) { + assert!(t.events.is_empty()); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(t.eth_events.len(), 1); + } } } @@ -1591,21 +1586,13 @@ mod tests { fn injected_event_dest_with_value_is_committed_with_claim() { for destination in [ActorId::GEAR_SAILS_EVENT, ActorId::ETH_SAILS_EVENT] { let t = send_handle_to_user_transition(destination, 100, MessageType::Injected, true); - assert_eq!( - t.messages.len(), - 1, - "message must be present for {destination:?}" - ); - assert!( - t.committed_message_ids.contains(&t.messages[0].id), - "injected message with value must be in committed_message_ids ({destination:?})" - ); - assert_eq!( - t.claims.len(), - 1, - "autoclaim must be pushed for committed injected event message ({destination:?})" - ); - assert_eq!(t.claims[0].value, 100); + assert!(t.messages.is_empty()); + assert!(t.claims.is_empty()); + if is_gear_sails_event_destination(destination) { + assert!(t.events.is_empty()); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(t.eth_events.len(), 1); + } } } @@ -1630,20 +1617,13 @@ mod tests { fn canonical_event_dest_is_committed_with_claim() { for destination in [ActorId::GEAR_SAILS_EVENT, ActorId::ETH_SAILS_EVENT] { let t = send_handle_to_user_transition(destination, 100, MessageType::Canonical, true); - assert_eq!( - t.messages.len(), - 1, - "message must be present for {destination:?}" - ); - assert!( - t.committed_message_ids.contains(&t.messages[0].id), - "canonical event message must be in committed_message_ids ({destination:?})" - ); - assert_eq!( - t.claims.len(), - 1, - "autoclaim must be pushed for canonical event message ({destination:?})" - ); + assert!(t.messages.is_empty()); + assert!(t.claims.is_empty()); + if is_gear_sails_event_destination(destination) { + assert_eq!(t.events.len(), 1); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(t.eth_events.len(), 1); + } } } } diff --git a/ethexe/runtime/common/src/schedule.rs b/ethexe/runtime/common/src/schedule.rs index f59a60c0575..66cd7657c33 100644 --- a/ethexe/runtime/common/src/schedule.rs +++ b/ethexe/runtime/common/src/schedule.rs @@ -102,7 +102,8 @@ impl TaskHandler for Handler<'_, S> { transitions.modify_transition(program_id, |transition| { let message = dispatch.clone().into_message(storage, user_id); - let committable = message_type.is_canonical(); + let committable = + message_type.is_canonical() || is_eth_sails_event_destination(user_id); if committable { if is_gear_sails_event_destination(user_id) { transition.events.push(message.payload); @@ -696,21 +697,13 @@ mod tests { } let transition = transitions.modifications_mut().remove(&program_id).unwrap(); - assert_eq!( - transition.messages.len(), - 1, - "message must be in messages ({destination:?})" - ); - assert!( - !transition - .committed_message_ids - .contains(&transition.messages[0].id), - "injected value-0 stashed event message must NOT be committed ({destination:?})" - ); - assert!( - transition.claims.is_empty(), - "no autoclaim for off-chain injected stashed event message ({destination:?})" - ); + assert!(transition.messages.is_empty()); + assert!(transition.claims.is_empty(),); + if is_gear_sails_event_destination(destination) { + assert!(transition.events.is_empty()); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(transition.eth_events.len(), 1); + } } } @@ -774,23 +767,13 @@ mod tests { } let transition = transitions.modifications_mut().remove(&program_id).unwrap(); - assert_eq!( - transition.messages.len(), - 1, - "message must be in messages ({destination:?})" - ); - assert!( - transition - .committed_message_ids - .contains(&transition.messages[0].id), - "injected message with value must be committed in stash path ({destination:?})" - ); - assert_eq!( - transition.claims.len(), - 1, - "autoclaim must be pushed for committed injected stashed event message ({destination:?})" - ); - assert_eq!(transition.claims[0].value, 11); + assert!(transition.messages.is_empty()); + assert!(transition.claims.is_empty()); + if is_gear_sails_event_destination(destination) { + assert!(transition.events.is_empty()); + } else if is_eth_sails_event_destination(destination) { + assert_eq!(transition.eth_events.len(), 1); + } } }